欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC传值中文乱码解决方案

程序员文章站 2022-04-03 08:14:49
...

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传。 但问题是到了后台出现乱码,不论是SQL查询关键字,还是其他参数,试了几种方案

1.xml配置

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<form action="user/sixRequst" method="post" name="info"> 
 	username:<input type="text" name="username">
   	loginame:<input type="text" name="loginame"> 
        <input type="submit" value="登录"> 
</form>
修改web.xml,增加编码过滤器,如***意,需要设置forceEncoding参数值为true)

 <!-- 字符过滤器 -->  
  <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> 

还是不管用

再改工程里的tomcat的配置文件server.xml

Connector标签增加useBodyEncodingForURI="true"属性即可

至此郁闷2周的乱码问题解决了。


注意:

数据库编码是否支持中文

数据库表和表字段是否正确

在配置连接数据库的参数设置修改:

<property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>