1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。
URL形式:http://localhost/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Controller方法中的入参名称一致。
1 /** 2 * 1.直接把表单的参数写在Controller相应的方法的形参中 3 * @param username 4 * @param password 5 * @return 6 */ 7 @RequestMapping("/addUser1") 8 public String addUser1(String username,String password) { 9 System.out.println("username is:"+username); 10 System.out.println("password is:"+password); 11 return "demo/index"; 12 }
2、通过HttpServletRequest接收,post方式和get方式都可以。
1 /** 2 * 2、通过HttpServletRequest接收 3 * @param request 4 * @return 5 */ 6 @RequestMapping("/addUser2") 7 public String addUser2(HttpServletRequest request) { 8 String username=request.getParameter("username"); 9 String password=request.getParameter("password"); 10 System.out.println("username is:"+username); 11 System.out.println("password is:"+password); 12 return "demo/index"; 13 }
3、通过一个bean来接收,post方式和get方式都可以。
1 /** 2 * 3、通过一个bean来接收 3 * @param user 4 * @return 5 */ 6 @RequestMapping("/addUser3") 7 public String addUser3(UserModel user) { 8 System.out.println("username is:"+user.getUsername()); 9 System.out.println("password is:"+user.getPassword()); 10 return "demo/index"; 11 }
4、通过@PathVariable获取路径中的参数
例如,访问http://localhost/SSMDemo/demo/addUser4/lixiaoxi/111111 路径时,则自动将URL中模板变量{username}和{password}绑定到通过@PathVariable注解的同名参数上,即入参后username=lixiaoxi、password=111111
1 /** 2 * 4、通过@PathVariable获取路径中的参数 3 * @param username 4 * @param password 5 * @return 6 */ 7 @RequestMapping(value="/addUser4/{username}/{password}",method=RequestMethod.GET) 8 public String addUser4(@PathVariable String username,@PathVariable String password) { 9 System.out.println("username is:"+username); 10 System.out.println("password is:"+password); 11 return "demo/index"; 12 }
5、用注解@RequestParam绑定请求参数到方法入参
当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value="username", required=false)
1 /** 2 * 6、用注解@RequestParam绑定请求参数到方法入参 3 * @param username 4 * @param password 5 * @return 6 */ 7 @RequestMapping(value="/addUser6",method=RequestMethod.GET) 8 public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) { 9 System.out.println("username is:"+username); 10 System.out.println("password is:"+password); 11 return "demo/index"; 12 }
6、spring MVC中传递的参数对象中包含list的情况
1 var answerQues = {}; 2 answerQues.type_id = select_type_id; 3 answerQues.queList = r; //var r = []; r是个数组 r.push({id:123,ques:'问题'}); 4 answerQues.answId = answId; 5 answerQues.answ = answ_; 6 answerQues.quesId = quesId; 7 answerQues.ques = ques; 8 9 $.ajax({ 10 url:ajax_add_edit_url, 11 type: 'POST', 12 async: false, 13 dataType:'json', 14 contentType : 'application/json;charset=utf-8', //设置请求头信息 15 data: JSON.stringify(answerQues),//将对象序列化成JSON字符串,必须是字符串,不能直接传对象 16 success:function(res){ 17 if(res){ 18 19 } 20 } 21 });
1 @ResponseBody 2 @RequestMapping("add.do") 3 public String add(HttpServletRequest request,@RequestBody AnswerQues answerQues){//@RequestBody一定要加上 4 system.out.print(answerQues.toString()); 5 return "SUCCESS"; 6 }