一、@RequestMapping使用须知
1.@RequestMapping 注解可以在控制器类的级别或其中的方法的级别上使用。
2.@RequestMapping 映射http请求url到方法上
3.RequestMapping注解有六个属性:
value:指定请求的实际地址;
method:指定请求的method类型, GET、POST、PUT、DELETE等;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
二、@RequestParam使用须知
1.用于将请求参数区数据映射到功能处理方法的参数上,接受的参数是来自requestHeader中,即请求头,通常用于GET请求,也可以用于post,delete等请求。
2.用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。
3.@RequestParam 有三个属性:
(1)value:请求参数名(必须配置)
(2)required:是否必需,默认 true,即请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
(3)defaultValue:默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)
示例
:@RequestParam(value=“name”, required=true, defaultValue="") Sting name
三、@RequestBody使用须知
1.@RequestBody 映射请求到方法体上,接受的参数是来自requestBody中,即请求体。
2.用来处理非Content-Type: 为 application/x-www-form-urlencoded编码的内容。例如:application/json、application/xml等类型的数据。
3.@RequestBody注解常用于接收json格式的数据,并将其转换成对应的数据类型。
四、@PathVariable使用须知
1.@PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中,获取请求路径中的变量作为参数
2. 带占位符的 URL 是 Spring3.0 新增的功能
@RequestMapping("/DemoPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id)
{
System.out.println("id:"+id);
return SUCCESS;
}
可以定义正则表达式进行更精确的控制,设置URL变量规则后,不合法的URL则不会被处理,直接由SpringMVC框架返回404
示例
: @RequestMapping("/user/{name:[a-zA-Z0-9_]+}")
3.@RequestParam与@PathVariable区别
简单示例:
@PathVariable返回的为 …/test/123.
@RequestParam返回的为 …/test?id=123.
五、@ModelAttribute使用须知
@ModelAttribute注解类型将参数绑定到Model对象
示例:
<form action="/Test" method="post">
用户名:<input type="text" name="name">
用户密码:<input type="password" name="userPwd">
<input type="submit" value="提交"><br>
</form>
前端页面字段必须和实体里面的字段对应才能映射。
@RequestMapping(value="/Test", method = RequestMethod.POST)
public String test(@ModelAttribute User user){
System.out.println("name: " + user.getName());
System.out.println("userpwd: " + user.getUserPwd());
return "test";
}