SpringMVC学习笔记02_常用注解

常用注解

@RequestParam / @RequestBody / @PathVaribale

  • RequestParam 使用说明

作用:
把请求中指定名称的参数给控制器中的形参赋值。
属性:
value:请求参数中的名称。
required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错。

  • PathVaribale 使用说明

作用:
用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},这个 {id} 就是 url 占位符。
url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。
属性:
value:用于指定 url 中占位符名称。
required:是否必须提供占位符。

  • RequestBody 使用说明

作用:
用于获取请求体内容。直接使用得到是 key=value&key=value…结构的数据。
get 请求方式不适用。
属性:
required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值
为 false,get 请求得到是 null。

@SessionAttribute

  • 使用说明

作用:
用于多次执行控制器方法间的参数共享。
属性:
String[] value:要保存到session中的参数名称
Class[] typtes:要保存的参数的类型,和value中顺序要对应上
比如:@SessionAttributes(value={“attr1”,”attr2”}, types = {User.class,Dept.class})
注意:
value和type之间是并集关系

  • 来看看在代码上是怎么使用的
@RequestMapping("/springmvc")
//会将model中属性名为username和password以及类型为Integer的属性添加到会话中。()
@SessionAttributes(value ={"username","password"},types={Integer.class}) 
public class SessionAttributeController {

	/* Model 是 spring 提供的一个接口,该接口有一个实现类 ExtendedModelMap
	* 该类继承了 ModelMap,而 ModelMap 就是 LinkedHashMap 子类*/
	@RequestMapping("/testPut") 
	public String testPut(Model model){ 
		 model.addAttribute("username", "root"); 
		 model.addAttribute("password","123456"); 
		 model.addAttribute("age", 18); 
		 //跳转之前将数据保存到session域里的 username、password 和age中
		这几个参数 
		 return "success"; 
	}
	
	//方法执行前会将session中所有参数装进model里面
	@RequestMapping("/testGet") 
	public String testGet(ModelMap model){ 
		System.out.println(model.get("username")+";"+model.get("password")+";"+model.get("age")); 
		return "success"; 
	}

	//SessionStatus.setComplete()只会删除通过@SessionAttributes保存到session中的参数
	@RequestMapping("/testClean") 
	public String complete(SessionStatus sessionStatus){ 
		sessionStatus.setComplete(); 
		return "success"; 
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值