手机
当前位置:查字典教程网 >编程开发 >Java >struts2 中文乱码的解决办法分享
struts2 中文乱码的解决办法分享
摘要:适合情况->从jsp传入到action时的乱码情况,这里以GBK为例1.建立一个用于转换编码的filter文件位置举例:src.util.S...

适合情况 -> 从jsp传入到action时的乱码情况,这里以GBK为例

1.建立一个用于转换编码的filter

文件位置举例:src.util.SetCharacterEncodingFilter.java

复制代码 代码如下:

package util;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.UnavailableException;

/**

* Example filter that sets the character encoding to be used in parsing the

* incoming request

*/

public class SetCharacterEncodingFilter implements Filter {

/**

* Take this filter out of service.

*/

public void destroy() {

}

/**

* Select and set (if specified) the character encoding to be used to

* interpret request parameters for this request.

*/

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain)throws IOException, ServletException {

request.setCharacterEncoding("gbk");

// 传递控制到下一个过滤器

chain.doFilter(request, response);

}

public void init(FilterConfig filterConfig) throws ServletException {

}

}

2.修改web.xml,在struts的FilterDispatcher映射之前添加2个filter

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<filter>

<filter-name>Set Character Encoding</filter-name>

<filter-class>util.SetCharacterEncodingFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>Set Character Encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<filter>

<filter-name>struts-cleanup</filter-name>

<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

</filter>

<filter-mapping>

<filter-name>struts-cleanup</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>

3.你的JSP头应该有

<%@ page language="java" pageEncoding="GBK"%>

4.在struts.xml中修改默认的编码设定

复制代码 代码如下:

<struts>

<constant name="struts.i18n.encoding" value="gbk"></constant>

...

...

...

</struts>

基本上就这样可以解决大多传入的字符乱码问题

PS:如果是数据库提取字符乱码,比如mysql,确认你的数据库内字符是gbk,并且连接字符串指定了字符编码

<property name="url" value="jdbc:mysql://localhost/database?useUnicode=true&characterEncoding=gbk"></property>

【struts2 中文乱码的解决办法分享】相关文章:

Java中对XML的解析详解

Eclipse下使用ANT编译提示OutOfMemory的解决方法

java中Scanner类的简单用法分享

java中Filter过滤器处理中文乱码的方法

java基于包结构的请求路由实现实例分享

Java中List与Map初始化的一些写法分享

java读写二进制文件的解决方法

Java下载文件时文件名乱码问题解决办法

java页面中文乱码的解决办法

基于Java字符编码的使用详解

精品推荐
分类导航