1: 控制响应结果动态页面中中文信息的正确显示
<%@ page contentType="text/html;charset=ISO8859_1" %>
2: 控制接受的用户请求数据的正确中文编码
<%request.setCharacterEncoding("ISO8859_1");%>
3:控制XML文件中中文信息的正确显示
<?xml version="1.0" encoding="ISO8859_1">
在Struts框架中进行应用程序的国际化,最重要的工作就是准备ResourceBundle资源包。在每个资源包中存放针对不同区域的用户所涉及的文本及图片。
1 对文本的国际化
在JSP页面中不再直接输出包含本地化的信息,而是通过<bean:message>标记从资源包中分别获取不同区域的文本。例如:
英文界面资源包中为:title.login=Login Page
中文界面资源包中为:title.login=登录界面
2 对按钮的国际化
为了使按钮的标签可以支持多种语言,在JSP页面中利用下面的代码来表示提交。
<html:submit>
<bean:message key="item.submit">
</html:submit>
然后从资源包中获取标签信息
英文资源包:item.submit=submit
中文资源包:item.submit=登录
3 对图片的国际化
为使页面在不同的语言环境中显示不同的图片,在JSP页面中利用下面的代码来表示图片。
<html:imag pageKay="title.imagEnter" altKey="title.imagEnterHint">
然后读取资源包
英文为:title.imagEnter=/enterE.gif
title.imagEnterHint=Classmate
中文为:title.imagEnter=/enter.gif
title.imagEnterHint=同学录
属性文件中包含的是“键-值”对形式的字符串信息。属性文件在应用程序启动时被载入内存,并根据客户端请求所携带的语言信息进行匹配和使用。这些信息以java.util.Locale类型属性的方式被封装在request对象中,感兴趣的读者可以通过HttpServletRequest类的getLocale()方法获取相应的Locale对象,再进而调用Locale对象的getLanguage()方法获取具体的语言种类信息。
在原Web应用程序中使用属性文件的修改步骤;
1 创建所需的资源包,以.properties后缀
2 将属性文件保存到Web应用的classes文件夹下
3 部署标签库,即在web.xml中添加taglib子元素
4 在部署文件web.xml中加入<load-on-startup>元素,以确保系统启动时(在接受客户请求之前)就载入所需的属性信息
5 修改原Struts配置文件struts-config.xml,添加一个<message-resources/>元素,用于指明所要用到的资源包。
<message-resources parameter="myproject.myresource">
6 定义、修改JSP文件,在文件开头引入.tld 用户标签库,并使用<bean:message>标记获取属性文件信息,以替换文件中所有直接给出的响应字符串
7 使用不同操作系统测试Web应用程序