1, 直接把表单的参数写在 Controller 相应的方法的形参中, 适用于 get 方式提交, 不适用于 post 方式提交. 若 "Content-Type"="application/x-www-form-urlencoded", 可用 post 提交
url 形式: http://localhost:8080/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和 Controller 方法中的入参名称一致.(参数少的时候适用, 涉及 password 还是用 post 方式吧)
- /**
- * 直接把表单的参数写在 Controller 相应的方法的形参中
- * @param username
- * @param password
- * @return
- */
- @RequestMapping("/addUser1")
- public String addUser1(String username,String password) {
- System.out.println("username is:"+username);
- System.out.println("password is:"+password);
- return "demo/index";
- }
2, 通过 HttpServletRequest 接收, post 方式和 get 方式都可以.(通用, 统一, 很基础)
- /**
- * 通过 HttpServletRequest 接收
- * @param request
- * @return
- */
- @RequestMapping("/addUser2")
- public String addUser2(HttpServletRequest request) {
- String username=request.getParameter("username");
- String password=request.getParameter("password");
- System.out.println("username is:"+username);
- System.out.println("password is:"+password);
- return "demo/index";
- }
3, 通过一个 bean 来接收, post 方式和 get 方式都可以.(Spring MVC 中常用的方法)
- /**
- * 通过一个 bean 来接收
- * @param user
- * @return
- */
- @RequestMapping("/addUser3")
- public String addUser3(UserModel user) {
- System.out.println("username is:"+user.getUsername());
- System.out.println("password is:"+user.getPassword());
- return "demo/index";
- }
4, 使用 @ModelAttribute 注解获取 POST 请求的 FORM 表单数据
- /**
- * 使用 @ModelAttribute 注解获取 POST 请求的 FORM 表单数据
- * @param user
- * @return
- */
- @RequestMapping(value="/addUser5",method=RequestMethod.POST)
- public String addUser5(@ModelAttribute("user") UserModel user) {
- System.out.println("username is:"+user.getUsername());
- System.out.println("password is:"+user.getPassword());
- return "demo/index";
- }
5, 用注解 @RequestParam 绑定请求参数到方法入参
当请求参数 username 不存在时会有异常发生, 可以通过设置属性 required=false 解决, 例如: @RequestParam(value="username", required=false)
**** 若 "Content-Type"="application/x-www-form-urlencoded",post get 都可以
**** 若 "Content-Type"="application/json", 只适用 get
- /**
- * 用注解 @RequestParam 绑定请求参数到方法入参
- * @param username
- * @param password
- * @return
- */
- @RequestMapping(value="/addUser6",method=RequestMethod.GET)
- public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
- System.out.println("username is:"+username);
- System.out.println("password is:"+password);
- return "demo/index";
- }
6, 用 request.getQueryString() 获取 spring MVC get 请求的参数, 只适用 get 请求
- @RequestMapping(value="/addUser6",method=RequestMethod.GET)
- public String addUser6(HttpServletRequest request) {
- System.out.println("username is:"+request.getQueryString());
- return "demo/index";
- }
来源: http://www.bubuko.com/infodetail-2975344.html