SpringMvc请求处理---处理参数规则和乱码解决方案
1、接收请求参数
1.1、默认处理请求参数规则
在springMvc中只需要在处理方法中声明对应的参数就可以自动接收请求参数并且还可以自动转换类型。
如果类型未匹配会报400错误。
匹配规则:
1、请求的参数必须跟处理方法的参数名一致。
2、如果处理的参数未传入的情况会自动传入null。
1.2、如果请求参数名称不一致
我们可以使用@RequestParam来管理请求参数
这里我们讲解几个@RequestParam的参数。
1、value:使用属性value,给其参数重命名,重命名之后,默认必须传入参数,否则会报错,如下示例,name是请求时必输的,而且传入的参数名必须为userName。
@RequestMapping("/params01")
public String params01(@RequestParam("userName") String name){
System.out.println("Hello " + name);
return "redirect:index.jsp";
}
2、required:当设置为false时,可以不用必须传入参数,默认值为true,如下示例:
@RequestMapping("/params01")
public String params01(@RequestParam(value = "userName",required = false) String name){
System.out.println("Hello " + name);
return "index.jsp";
}
3、defaultValue:设置默认值,当不传入这个字段的值的时候,会传入一个默认值,当设置了这个参数时,required参数会默认转换为false,示例如下:
@RequestMapping("/params01")
public String params01(@RequestParam(value = "userName",required = false, defaultValue = "LeLe") String name){
System.out.println("Hello " + name);
return "index.jsp";
}
注:不要使用基础数据类型,基础数据类型不能接收null值,否则将会报错。
2、处理请求参数乱码
Get:直接设置tomcat下conf/server.xml文件里面的Connector URIEncoding=“UTF-8”
POST:在servlet的时期我们可以在获取参数之前设置一个参数request.setCharacterEncoding(“UTF-8”),但是这样在每一个方法类中都需要写太麻烦,所以哦我们会用过滤器来解决。
springMvc提供的编码过滤器CharacterEncodingFilter,在web.xml文件中配置。