原文出处:http://qify.iteye.com/blog/689912
声明:本人转载只为分享,如涉及商业版权纠纷,请及时与本人联系,必将立即删除,造成不便,还望见谅,谢谢。
在网上有很多有关Struts的中文解决方案,但是很多都说得很零碎,不够完整。
下面是我的一个完整解决方案。
要使网页能够真正实现多语言,有三个地方都需要修改:
1. 在页面部分,一定要把页面的编码设成UTF-8,就是在开头加上这一句:
<%@ page contentType="text/html; charset=UTF-8" %>
并且把所有的中文信息都放到resource文件中。
以前我在写网页的时候,没有指定页面的编码,总是在获取表单的内容后,要人工的用new String(s.getBytes("ISO-8859-1"))转换一下,这样是很繁琐的,而且很容易出错。网页中如果没有指定编码,那么默认的就是用ISO-8859-1编码的。
2.相应的资源文件需要用native2ascii转换一下。
对于简体中文的资源文件:
Java代码
native2ascii -encoding gbk ApplicationResources_zh.properties
convert\ApplicationResources_zh.properties
对于繁体中文的资源文件:
Java代码
native2ascii -encoding big5 ApplicationResources_zh_tw.properties
convert\ApplicationResources_zh_tw.properties
3.需要用一个filter设置一下request的编码,我的代码如下:
filter代码:
Java代码
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**//**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author George Hill
* @version 1.0
*/
public class CharsetFilter implements Filter {
private FilterConfig filterConfig;
/**//**
* Request设置的Charset encoding
*/
private String encoding;
/**//**
* 是否忽略设置Request的Charset encoding
*/
private boolean ignore;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if ("true".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value)
|| "on".equalsIgnoreCase(value) || "1".equalsIgnoreCase(value)) {
ignore = true;
}
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (!ignore) {
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
//Clean up resources
public void destroy() {
this.filterConfig = null;
}
}
web.xml的相关片断如下。注意:将以下代码放入web.xml文件中的</servlet-mapping>后面即可!
Java代码
<filter>
<filter-name>charsetfilter</filter-name>
<filter-class>xxx.CharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样,在Action中处理表达的内容时,就不需要再做转换;而且在Action中处理数据给页面显示时,也不需要做转换。在页面中可以同时显示简体和繁体的内容,不需要去设置IE的编码。
另外需要说明的就是如果数据库也支持编码的话,最好也是设成UTF-8编码,这样才能够完整的解决多语言的问题。例如MySQL 4.1以上的版本可以设置编码成utf8,在JDBC的URL中可以指定编码为UTF-8。
分享到:
相关推荐
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
Struts 之旅 - 多国语言
赠送jar包:struts-core-1.3.8.jar; 赠送原API文档:struts-core-1.3.8-javadoc.jar; 赠送源代码:struts-core-1.3.8-sources.jar; 赠送Maven依赖信息文件:struts-core-1.3.8.pom; 包含翻译后的API文档:struts...
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
目前两种模式scan和exec支持:struts2-001struts2-005struts2-007struts2-008struts2-009struts2-012struts2-013struts2-015struts2-016struts2-045struts2-046struts2-048struts2-053struts2-057开发目的1、适用于...
struts2-convention-plugin-2.3.32
绝对是官网最新版本2012年5月9日下载的,方便大家使用,很不错的资源,期待大家分享,只因我们都是ssh人~(所有相关jar包在:struts-2.3.3-all.zip\struts-2.3.3\lib)docs中都有相应的例子,会告诉你怎么用!...
struts2-convention-plugin-2.3.24.1
struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载
struts2-convention-plugin-2.3.15.1.jar
struts2-jfreechart-plugin-2.1.8.1.jar
SSH2框架搭建所需jar包,版本:struts-2.3.14+spring-2.5.6+hibernate3.6.10
struts2-convention-plugin-2.1.6.jar
struts2-spring-plugin-2.3.31.jar
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
最新struts2-spring-plugin-2.3.24.1.jar
JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-...
struts2-dojo-plugin-2.3.15.3.jar.zip
Struts2中的validation_多国语言版 国际化+struts2数据校验.zip
struts2-spring-plugin-2.2.1.jarstruts2-spring-plugin-2.2.1.jarstruts2-spring-plugin-2.2.1.jar