Struts国际化问题解决

王朝other·作者佚名  2006-05-27
宽屏版  字体: |||超大  

1.解决jsp页面中的中文问题:

在每个jsp头都加上<%@ page contentType="text/html;charset=GBK" language="java" %>,有需要的话也可以再加上<html:html locale="true"></html:html>表示使用本地编码。

2.解决资源包中的中文问题

jsp要调用资源包中的信息,我们需要这些信息是中文的,但是资源包中是不能直接写入中文的。否则会有乱码。

步骤:1) 先将资源包的信息写成自己需要的中文信息,保存成ApplicationResources_zh.properties

2) 运行cmd到资源包所在目录,运行jdk命令:native2ascii -encoding gb2312 ApplicationResources_zh.properties temp.txt

运行后会将编码转换成ascii,储存在temp.txt。复制temp.txt中的内容,用它覆盖ApplicationResources_zh.properties原来的内 容。

3) 不需要更改struts-config.xml中的资源包设置,它会根据浏览器的设置判断,选择相应的资源包。比如在IE的工具-INTERNET选项- 语言,选择你需要的语言。你可以选择多种语言,但系统会根据先后关系选择资源包。如果把中文放在前面,系统就会使用ApplicationResources_zh.properties的资源包。

3.解决页面数据传输的中文问题

jsp中将中文传给bean,再由bean传给jsp,在页面显示出来是乱码。

在WEB.XML中加入字体类,内容如下:

<!--SET CHARACTOR ENCODING-->

<filter>

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

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

<init-param>

<param-name>encoding</param-name>

<param-value>GBK</param-value>

</init-param>

</filter>

<filter-mapping>

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

<url-pattern>*.do</url-pattern>

</filter-mapping>

这里使用到一个字体类,SetCharacterEncodingFilter,在jsp-examples中可以找到,也可以参照里面的例子。你可以将那里的filters文件拷贝到你的classes下面。这里需要注意的是 <url-pattern>的内容,很多网页里把这里写成action。但是若这样写的话,是找不到项目的。所以,我把它写成*.do。如果是简单的javabean,则可以写成/*。

4. get方式的解决方法(struts不需要这个设置,只是附带说明而已)

打开tomcat的server.xml文件,找到区块,加入如下一行:

URIEncoding=”GBK”

完整的应如下:

<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有