本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!
上一篇:Struts1.x系列教程(15):使用DownloadAction類統(tǒng)計(jì)文件下載次數(shù)
我們?cè)?jīng)在《Struts1.x系列教程(13):國(guó)際化》一文中講過如何通過編程的方式實(shí)現(xiàn)多語言的Web頁面。在本文中,我們會(huì)介紹另外一種實(shí)現(xiàn)多語言Web頁面的方法。這種方式與《Struts1.x系列教程(13):國(guó)際化》一文中所介紹的方法的區(qū)別就是無需編寫一行代碼就可以完成多語言的設(shè)置。
Struts提供了一個(gè)LocaleAction類來做這個(gè)工作。LocaleAction類是一個(gè)final動(dòng)作類,因此,LocaleAction類不能被繼承。我們可按著如下兩步來使用LocaleAction類進(jìn)行多語言設(shè)置:
1. 配置一個(gè)動(dòng)態(tài)Form(當(dāng)然,也可以使用ActionForm的子類,但為了方便,建議使用動(dòng)態(tài)Form)。這個(gè)動(dòng)態(tài)Form至少得有一個(gè)表示語言的language屬性(如zh、fr、en、jp等)。我們還可以加一個(gè)表示國(guó)家或地區(qū)的country屬性(US、CN、TW等)。
2. 使用<action>元素配置一個(gè)Struts動(dòng)作。這個(gè)Struts動(dòng)作的type屬性值是org.apache.struts.actions.LocaleAction。name屬性值就是在第1步配置的動(dòng)作Form的name屬性值。而且在<action>元素中必須有一個(gè)名為“success”的<forward>元素。如果語言設(shè)置成功,頁面就會(huì)forward到“success”所指向的頁面。
下面我們來舉一個(gè)使用LocaleAction動(dòng)作類設(shè)置語言的例子,代碼如下:

<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):國(guó)際化》一文中建立的global.jsp文件。在啟動(dòng)Tomcat后,分別在IE中輸入如下的URL,可以得到中文和英文的Web頁面。
中文頁面:http://localhost:8080/samples/zh.do
英文頁面:http://localhost:8080/samples/en.do
下一篇:
Struts1.x系列教程(17):使用IncludeAction和ForwardAction類包含和轉(zhuǎn)入Web資源
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining