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文件中配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中,POST请求参数出现码的问题通常是由于字符编码不一致导致的。为了解决这个问题,可以按照以下步骤进行处理: 1. 首先,在你的Spring MVC配置文件中添加一个字符编码过滤器。在web.xml文件中添加以下代码: ```xml <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这将确保所有请求都使用UTF-8编码。 2. 如果你正在使用Spring Boot,你可以在application.properties或application.yml文件中添加以下配置: ```properties spring.http.encoding.charset=UTF-8 spring.http.encoding.force=true spring.http.encoding.enabled=true ``` 3. 确保发送请求的页面或客户端也使用相同的字符编码。例如,在HTML页面中,可以通过以下方式设置编码: ```html <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ``` 4. 如果以上步骤都没有解决问题,你可以尝试在处理请求的方法上添加`@RequestMapping`注解,并指定`produces`和`consumes`属性。例如: ```java @RequestMapping(value = "/yourEndpoint", produces = "application/json; charset=UTF-8", consumes = "application/x-www-form-urlencoded; charset=UTF-8") public String handleRequest(@RequestParam("param") String param) { // 处理请求参数 ... } ``` 这样可以确保请求和响应都使用UTF-8编码。 希望这些步骤能够帮助你解决Spring MVC请求参数POST出现码的问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值