1、传统传参方式 方法参数中使用request,通过request.getParameter("参数名"),再封装到bean中@RequestMapping("/test01")publicModelAndViewtest01(HttpServletRequestrequest){Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");System.out.println(username);
System.out.println(password);returnnull;}2、简单类型参数和RequestParam注解 如果请求参数和Controller方法的形参同名,可以直接接收 如果请求参数和Controller方法的形参不同名,可以使用@RequestParam注解贴在形参前,设置对应的参数名称@RequestMapping("/test02_1")publicModelAndViewtest02_1(Stringusername,Stringpassword){System.out.println(username);System.out.println(password);returnnull;}@RequestMapping("/test02_2")publicModelAndViewtest02_2(@RequestParam("username")Stringname,@RequestParam(value="password",defaultValue="1234987")Stringpwd){//使用了@RequestParam的参数不能传空值//required:表示是否必须要传值//defaultValue:当没有该请求参数时,SpringMVC给请求参数的默认值System.out.println(name);System.out.println(pwd);returnnull;}3、对象传参 此时能够自动把参数封装到形参的对象上 注意:1、请求参数必须和对象的属性同名 2、此时对象会直接放入request作用域中,名称为类型首字母小写 3、@ModelAttribute设置请求参数绑定到对象中并传到视图页面,设置key值@RequestMapping("/test03")publicModelAndViewtest03(@ModelAttribute("stu")Studentstudent){/*可以使用对象作为方法的形参,同时接受接受前台的多个请求参数SpringMVC会基于同名匹配,将请求参数的值注入对应的对象中的属性中@ModelAttribute起名字key值*/
System.out.println(student);ModelAndViewmv=newModelAndView();mv.setViewName("test2");returnmv;}4、数组和List集合类型参数 当前台页面传来的参数是参数名相同,参数值不同的多个参数时,可以直接封装到方法的数组类型的形参中,也可以直接封装到对象的集合属性中。 比如批量删除时传来的参数。RequestMapping("/test04")publicModelAndViewtest04(Stringid[]){/*对于参数名相同的多个请求参数,可以直接使用数组作为方法的形参接收可以使用对象中的集合属性接收*/for(Stringi:id){System.out.println(i);}returnnull;}@RequestMapping("/test05")publicModelAndViewtest05(Studentstudent){System.out.println(student.getId().size());for(Stringi:student.getId()){System.out.println(i);}returnnull;}5、使用Restful Restful是一种软件架构风格,严格上说是一种编码风格,其充分利用HTTP协议本身语义从而提供了一组设计原则和约束条件。 主要用于客户端和服务器交互类的软件,该风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。在后台,RequestMapping标签后,可以用{参数名}方式传参,同时需要在形参前加注解@PathVarible,假如前台的请求地址为localhost:8080/delete/3@RequestMapping("/delete/{id}"
publicModelAndViewtest4(@PathVariable("id")Longid){System.out.println("delete");System.out.println(id);returnnull;}