//作用:通常用在`Controller`里,用于设置访问路径 @RequestMapping( value="访问路径", method=请求方式, params="请求参数" )
一、接收表单参数
`@RequestParam(value="表单参数名称", required=是否必须,defaultValue = "默认参数")`
@RequestParam
- 如果客户端提交的表单参数名称,和Controller里方法参数名称一样,Spring会把表单数据直接绑定到方法参数上
- SpringMVC会自动绑定同名参数,并自动转换类型
- 客户端提交的表单参数名称,必须等于JavaBean的属性名
- 通常把List、Map等放到POJO对象里
- 客户端提交的表单参数名称,必须和POJO里的属性名称相等
- 设置List的数据时,表单参数名称:属性名[索引].属性名
- 设置Map的数据时,表单参数名称:
<form action="${pageContext.request.contextPath}/param/complexPojo" method="post">
<h5>vo里的user</h5>
<input type="text" name="user.name" value="tom"><br>
<input type="text" name="user.age" value="20"><br>
<h5>vo里的userList</h5>
<input type="text" name="userList[0].name" value="tom1"><br>
<input type="text" name="userList[0].age" value="21"><br>
<input type="text" name="userList[1].name" value="tom2"><br>
<input type="text" name="userList[1].age" value="22"><br>
<h5>vo里的userMap</h5>
<input type="text" name="userMap['u1'].name" value="jack1"><br>
<input type="text" name="userMap['u1'].age" value="31"><br>
<input type="text" name="userMap['u2'].name" value="jack2"><br>
<input type="text" name="userMap['u2'].age" value="32"><br>
<br>
<input type="submit" value="提交">
</form>
public class QueryVO {
private User user;
private List<User> userList;
private Map<String, User> userMap;
//get/set...
//toString...
}
@RequestMapping("/complexPojo")
public String pojoParam2(QueryVO vo){
System.out.println(vo);
return "success";
}
@RequestMapping
-
-
作用位置:用于方法的参数上,表示把请求体的数据,赋值给方法参数
-
要求:必须是POST方式提交
-
@RequestMapping("/body2")
public String body2(@RequestBody User user){
System.out.println(user);
return "success";
}
@RequestMapping(value = "/pathVar/{id}",method = RequestMethod.GET)
public String pathVar(@PathVariable("id") Integer id){
System.out.println(id);
return "success";
}
表单提交 formdata提交的用@requestParams 或者javabean对象绑定
json提交的,后端用@requestbody接收json数据转成