我们曾经在
《Struts1.x系列教程(13):国际化》
一文中讲过如何通过编程的方式实现多语言的
Web
页面。在本文中,我们会介绍另外一种实现多语言
Web
页面的方法。这种方式与
《Struts1.x系列教程(13):国际化》
一文中
所介绍的方法的区别就是无需编写一行代码就可以完成多语言的设置。
< form-beans >
< form-bean name ="EnglishForm" type ="org.apache.struts.action.DynaActionForm" >
< form-property name ="language" type ="java.lang.String" initial ="en" />
< form-property name ="country" type ="java.lang.String" initial ="US" />
</ form-bean >
< form-bean name ="ChineseForm" type ="org.apache.struts.action.DynaActionForm" >
< form-property name ="language" type ="java.lang.String" initial ="zh" />
</ form-bean >
</ form-beans >
< action-mappings >
< action name = "EnglishForm" path ="/en" type ="org.apache.struts.actions.LocaleAction" >
< forward name ="success" path ="/global.jsp" />
</ action >
< action name ="ChineseForm" path ="/zh" type ="org.apache.struts.actions.LocaleAction" >
< forward name ="success" path ="/global.jsp" />
</ action >
</ action-mappings >
Struts
提供了一个LocaleAction
类来做这个工作。LocaleAction类是一个final动作
类,因此,LocaleAction类不能被继承
。我们可按着如下两步来使用LocaleAction
类进行多语言设置:
1. 配置一个动态Form (当然,也可以使用ActionForm 的子类,但为了方便,建议使用动态Form )。这个动态Form 至少得有一个表示语言的language 属性(如zh 、fr 、en 、jp 等)。我们还可以加一个表示国家或地区的country 属性(US 、CN 、TW 等) 。
1. 配置一个动态Form (当然,也可以使用ActionForm 的子类,但为了方便,建议使用动态Form )。这个动态Form 至少得有一个表示语言的language 属性(如zh 、fr 、en 、jp 等)。我们还可以加一个表示国家或地区的country 属性(US 、CN 、TW 等) 。
2.
使用<action>
元素配置一个Struts
动作。这个Struts
动作的type
属性值是org.apache.struts.actions.LocaleAction
。name
属性值就是在第1
步配置的动作Form
的name
属性值。而且在<action>元素
中必须有一个名为“success
”的<forward>
元素。如果语言设置成功,页面就会forward
到“success
”所指向的页面。
下面我们来举一个使用LocaleAction
动作类设置语言的例子,代码如下:
< form-beans >
< form-bean name ="EnglishForm" type ="org.apache.struts.action.DynaActionForm" >
< form-property name ="language" type ="java.lang.String" initial ="en" />
< form-property name ="country" type ="java.lang.String" initial ="US" />
</ form-bean >
< form-bean name ="ChineseForm" type ="org.apache.struts.action.DynaActionForm" >
< form-property name ="language" type ="java.lang.String" initial ="zh" />
</ form-bean >
</ form-beans >
< action-mappings >
< action name = "EnglishForm" path ="/en" type ="org.apache.struts.actions.LocaleAction" >
< forward name ="success" path ="/global.jsp" />
</ action >
< action name ="ChineseForm" path ="/zh" type ="org.apache.struts.actions.LocaleAction" >
< forward name ="success" path ="/global.jsp" />
</ action >
</ action-mappings >
在上面的例子中,使用了在
《Struts1.x系列教程(13):国际化》
一文中
建立的global.jsp
文件。在启动Tomcat
后,分别在IE
中输入如下的URL
,可以得到中文和英文的Web
页面。
本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214852,如需转载请自行联系原作者