springMvc接口请求参数
//作用:通常用在`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数据转成