WEB Struts2 國際化構建,並實現顯示動態信息

加入國際化配置:html

  1. 在web.xml文件中加入:
    <filter>
    		<filter-name>struts2</filter-name>
    		<filter-class>
    		 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 
    		</filter-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>struts2</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>

    配置struts.xml的路徑,若是struts.xml文件在src根目錄下的話,配置節點可省略,自動載入,若是在web-inf目錄下就要在後面加入「../struts.xml」的配置
  2. 在對應的路徑中加入struts.xml文件,並加入代碼:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    	<package name="example" extends="struts-default">
    		<action name="HelloWord" class="web.HelloAction">
    			<result name="success">/hello.jsp</result>
    		</action>
    	</package>
    </struts>
  3. 在src根目錄下加入struts.properties運行時配置文件,並在其中加入國際化文件的前綴名配置:
    #定義Struts 2的資源文件的baseName是messageResource
    struts.custom.i18n.resources=messageResouce
    多個文件時用「,」隔開如:
    struts.custom.i18n.resources=messageResouce,test,name
  4. 在src根目錄下加入國際化支持文件,文件的命名規範爲
    basenam_語言代碼_國家代碼(大寫).properties
    好比:
    ....i18n....中設置的名字_en_US.properties(英語)
    ....i18n....中設置的名字_zh_CN.properties(中文)
  5. 在配置文件中加入語言環境的語言,如:
    在messageResouce_zh_CN.properties中加入:testkey=歡迎世界
    對應的再另外一個文件中加入testkey=Hello Word
  6. 在頁面中引用方法:
    <s:text name="testkey"/>
    <s:property value="%{getText('testkey')}"/>

    運行項目就會獲得其配置結果
  7. 若是要改變訪問語言環境能夠點擊瀏覽器的「工具——internet選項——常規下的語言按鈕」能夠添加語言環境或是更改首選語言,更改後刷新頁面就變成對應的英語了

 

 不少時候在開發中會碰見與上下文相關的動態的提示信息,能夠經過在國際化文件中加入動態配置實現,能夠用Struts2中OGNL表達式實現,好比:java

 

在action中
web

private String msg;
		public String testPro(){ 
		ServletActionContext.getRequest().setAttribute("name", "test Properties");
		msg = "test message";
		return SUCCESS;
	}
	
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}

在properties中能夠寫成
%{#request['name']}/%{#request['msg']} 或者是 %{#request.name}/%{#request.msg}均可以獲得,頁面顯示時便可獲得相應的結果
相關文章
相關標籤/搜索