Spring MVC 的请求参数获取的几种方法
通过@PathVariabl注解获取路径中传递参数
JAVA
1 @RequestMapping(value = "/{id}/{str}")
2 public ModelAndView helloWorld(@PathVariable String id,
3 @PathVariable String str) {
4 System.out.println(id);
5 System.out.println(str);
6 return new ModelAndView("/helloWorld");
7 }
用@ModelAttribute注解获取POST请求的FORM表单数据
JSP
1 <form method="post" action="hao.do">
2 a: <input id="a" type="text" name="a"/>
3 b: <input id="b" type="text" name="b"/>
4 <input type="submit" value="Submit" />
5 </form>
JAVA pojo
1 public class Pojo{
2 private String a;
3 private int b;
4
5
JAVA controller
1 @RequestMapping(method = RequestMethod.POST)
2 public String processSubmit(@ModelAttribute("pojo") Pojo pojo) {
3
4 return "helloWorld";
5 }
直接用HttpServletRequest获取
JAVA
1 @RequestMapping(method = RequestMethod.GET)
2 public String get(HttpServletRequest request, HttpServletResponse response) {
4 System.out.println(request.getParameter("a"));
5 return "helloWorld";
6 }
用注解@RequestParam绑定请求参数a到变量a
当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,
例如: @RequestParam(value="a", required=false)
JAVA
1 @RequestMapping(value = "/requestParam", method = RequestMethod.GET)
2 public String setupForm(@RequestParam("a") String a, ModelMap model) {
3 System.out.println(a);
4 return "helloWorld";}
用JSR-303校验获取参数也可以!
用@Valid获取参数也可以
@Valid User User//实体设置+类+类的引用 直接将页面传过来的user对象中的信息封装到里面去了
@RequestMapping(value="register",method=RequestMethod.POST)
public ModelAndView userRegister(@Valid User user,HttpServletRequest request,HttpServletResponse response){
HttpSession session = request.getSession();
user.setUsername(user.getUsername());
user.setPassword(user.getPassword());
user.setClassroom(user.getClassroom());
user.setPhone(user.getPhone());
user.setAddress(user.getAddress());
session.setAttribute("model", user);
userService.AddUser(user);
return new ModelAndView("index");
}