Struts国际化问题解决

类别:Java 点击:0 评论:0 推荐:

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"/>

     

本文地址:http://com.8s8s.com/it/it10838.htm