1.逐个参数接收
只要保证请求参数名与该请求处理方法的参数名相同即可
1 // 请求参数名 与该处理器中的请求方法的参数名相同 ,即可接收前台传递过来的参数2 public ModelAndView method1(String username, int age) {
2.请求参数中文乱码问题
1 23 characterEncodingFilter 45 org.springframework.web.filter.CharacterEncodingFilter 6 7 89 12 13encoding 10utf-8 1114 17forceEncoding 15true 16
3.校正请求参数名@RequestParam
所谓校正请求参数名,是指若请求URL所携带的参数名与处理方法中指定的参数名不相同时,
则需在处理方法参数前,添加一个注解 @RequestParam("请求参数名"),指定请求URL所携带参数的名称
该注解是对处理方法参数进行修饰的
@RequestParam() 有三个属性
value:指定请求参数的名称
required:指定该注解所修饰的参数是否是必须的
defaultValue:指定当前参数的默认值
1 // 校正请求参数名 (前台传来的 参数名 和 这里 方法中的参数名 无法匹配,可以使用 这个注解 来映射一下 )2 @RequestMapping(value = "/requestParams.do")3 public ModelAndView method2(@RequestParam("username") String name, int age) {
4.整体参数接收
将处理器方法的参数定义为一个对象,只要保证请求参数名与这个对象的属性一致即可
参数名称中不用写成 对象.属性 的 形式(前台给的参数也不用写成 对象.属性)
1 username :2 age :
1 @RequestMapping(value = "/objectParams.do") 2 public ModelAndView method3(Person person) { 3 4 System.out.println(person); 5 ModelAndView mv = new ModelAndView(); 6 mv.addObject("username", person.getUsername()); 7 mv.addObject("age",person.getAge()); 8 mv.setViewName("/WEB-INF/jsp/hello.jsp"); 9 return mv;10 }
5.域属性参数的接收
所谓域属性,即对象属性。(该对象的某属性还是一个对象)
当请求参数中的数据为某类对象域属性的属性值,要求请求参数名为 "域属性名.属性"
1 username :2 age :
1 //域属性(某个属性 是 对象类型)参数的接收 2 @RequestMapping(value = "/objectPropertyParams.do") 3 public ModelAndView method4(Earth earth) { 4 5 System.out.println(earth); 6 ModelAndView mv = new ModelAndView(); 7 mv.addObject("username", earth.getPerson().getUsername()); 8 mv.addObject("age",earth.getPerson().getAge()); 9 mv.setViewName("/WEB-INF/jsp/hello.jsp");10 return mv;11 }
6.路径变量@PathVariable
对于处理器方法中所接受的请求参数,可以来自请求中所携带的参数,也可以来自于请求的URI中所携带的变量,
此时,需要借助@PathVariable 注解
1 // 路径变量 (参数 藏在 路径中传递过来)(了解就好)2 @RequestMapping(value = "/{pname}/{age}/pathVariableParams.do")3 public ModelAndView method5(@PathVariable("pname") String name,@PathVariable int age) {4 ModelAndView mv = new ModelAndView();5 mv.addObject("username", name);6 mv.addObject("age",age);7 mv.setViewName("/WEB-INF/jsp/hello.jsp");8 return mv;9 }