SpringMVC传值中文乱码解决方案

来源:互联网 发布:ipad达芬奇调色软件 编辑:程序博客网 时间:2024/05/22 06:32

在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>