Controller获取表单数据有三种方法:
1. 传入Servlet的HttpServletRequest参数,并通过request.getParameter()获取请求数据。
@RequestMapping(method = RequestMethod.GET) public String showUserMessage(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); return "index"; }
2. 使用@RequestParam注解来进行添加表单字段的参数,但是如果表单字段很多,那么这种方法过于麻烦。
@RequestMapping(method = RequestMethod.GET) public String showUserMessage(@RequestParam("username") String username, @RequestParam("password") String password) { System.out.println(username + "\n" + password); return "index"; }
3. 使用@ModelAttribute添加自定义Java类型的入参(也可不使用注解)。
@RequestMapping(method = RequestMethod.GET) public String showUserMessage(@ModelAttribute User user) { System.out.println(user.getUsername() + "\n" + user.getPassword()); return "index"; }
综上,如果参数少可以使用第二种,参数超过四个则使用第三种。