idea中實現struts2框架下國際化
阿新 • • 發佈:2018-12-31
一、輸出國際化資訊
1.需要更改idea設定
File–>settings–>Editer–>File Encodings
在介面的右下角勾選Transparent native-to-ascii conversion,使中文轉成unicode編碼
2.在src下建立至少兩個:基本名_ 語言 _國家.properties全域性資原始檔,基本名同會儲存在一個目錄下!
3.在struts.xml中進行配置(配置為全域性資原始檔)
<constant name="struts.custom.i18n.resources" value="tt"></constant >
若定義在包範圍的資原始檔,檔名為:package_ 語言 _國家.properties,package為固定寫法,資原始檔所在包及其子包下的action均可用;
若定義在某個action範圍的資原始檔,檔名為:ActionClassName_ 語言 _國家.properties(不是avtion name),該資原始檔僅該action可用;
系統在查詢key時,先查action範圍,再查package範圍,後找全域性資原始檔
4.在jsp中顯示(使用全域性資原始檔)
<s:text name="welcome"></s:text>
5.action中獲取
繼承ActionSupport類
呼叫this.getText()方法,引數資源中的key值
public class International extends ActionSupport
public String execute() throws Exception {
String inter=this.getText("welcome");
ActionContext.getContext().put("msg",inter);
return SUCCESS;
二、輸出帶有佔位符的國際化資訊
1.資原始檔中{數字}代表佔位符,數字從零開始,{0}代表第一個佔位符
2.jsp頁面輸出(使用全域性資原始檔)
<s:text name="welcome">
<s:param>快樂</s:param>
<s:param>你</s:param>
</s:text>
輸出:快樂歡迎你
3.action中獲取
以下兩種方法獲取
public String execute() throws Exception {
String inter=this.getText("welcome",new String[]{"天天","你"});
ActionContext.getContext().put("msg",inter);
return SUCCESS;
}
輸出:天天歡迎你
三、jsp中直接訪問資原始檔(不配置)
預設訪問全域性資原始檔,放在下訪問指定路徑的資原始檔;
全域性資原始檔,name為基本名稱
<s:i18n name="tt">
<s:text name="welcome">
<s:param>快樂</s:param>
<s:param>你</s:param>
</s:text>
</s:i18n>
包範圍資原始檔,name為包路徑加package
<s:i18n name="cn/hello/package">
action範圍檔案,name為action路徑
<s:i18n name="cn/hello/InternationalAction">