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>