Strust2 消息處理與國際化之配置國際化全局資源文件

1.首先struts2項目搭建完畢後,我們在src文件夾下。即struts2.xml同級文件夾下創建資源文件。資源文件的名稱格式爲:

XXX_語言_國家.properties

XXX:資源文件名。

語言、國家:必須是java所支持的語言和國家。比如:

中國大陸:語言   zh   國家  CN

美國:語言  en   國家 US

所以我們能夠這麼取名:

比如:i18n_zh_CN.properties

i18n_en_US.properties

2.創建上述的兩個資源文件,然後在當中輸入內容:key   和   value

比如:i18n_zh_CN.properties中輸入:username=用戶名,當輸入中文時會自己主動轉換爲ascii碼:

username=^\u7528\u6237\u540D

i18n_en_US.properties中輸入:username=UserName

3.然後我們在struts2.xml中配置全局資源文件

<constant name="struts.custom.i18n.resources" value="XXX"></constant>

這裏value取值爲i18n(可以取任意值)
目錄結構

 

代碼:i18n.jsp

 

<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form action="" >

 <!--若 label 標籤使用 %{getText('username')} 的方式就也可以從國際化資源文件中獲取 value 值了

    因爲此時在對象棧中有 DefaultTextProvider 的一個實例, 該對象中提供了訪問國際化資源文件的 getText() 方法

    同時還需要通知 struts2 框架 label 中放入的不再是一個普通的字符串, 而是一個 OGNL 表達式. 所以使用 %{} 把 getText()包裝起來, 以強制進行 OGNL 解析.

     -->

     <!--  theme="simple"若加上theme="simple"主題

頁面上可以直接使用 <s:text name="" /> 標籤來訪問國際化資源文件裏的 value 值.

<s:text name="username"/>:

<s:text name="username"/>:

<s:text name="password"/>:

-->

  <s:textfield name="username" label="%{getText('username')}"></s:textfield>

     <!-- key 的方式是直接上資源文件中獲取 value 值 -->

 <s:textfield name="username" key="username"></s:textfield>

 <s:password name="password" key="password"></s:password>

    

   <s:submit key="submit" value="%{getText('submit')}"></s:submit>

    

    </s:form>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章