struts2 學習總結 ---- i18n國際化

i18n國際化

實現國際化的步驟:
  1. 在struts.xml中指定資源文件的基名及存儲路徑

    <constant name="struts.custom.i18n.resources" value="message,error" />
    <constant name="struts.custom.i18n.resources" value="com.demo.message,com.demo.error" />

  2. 按需求創建相應的資源文件,用來存放資源

    <!--
    文件命名規則:
    	1.默認文件: 基名.properties
    		eg:  message.properties
    	2.語言	: 基名_語言.properties
    		eg:  message_zh.properties
    	3.國家或地區: 基名_語言_國家或地區.properties
    					eg : message_zh_TW.properties	message_zh_HK.properties
    
    資源文件的寫法 
    	Key=Value 
    
    	eg:
    		zh:	field_User.username=\u7528\u6237\u540D
    		en:	field_User.username=username
    -->


  3. 實現 jsp 頁面的國際化

    <!-- 在jsp頁面 用 <s:text name="key" />  標籤來獲取寫在資源文件中的配置 
     <s:i18n> 標籤:用來加載臨時 資源文件 -->
    <s:i18n name="message">
    	<!-- 方式一 s:text  -->
    	<s:text name="title" />
      	<s:form  action="login.action" >
    		<!--方式二  key="xxx" -->
      		<s:textfield name="user.username" key="username"></s:textfield>
    		<!-- 也算是一種方式吧 -->
      		<s:textfield name="user.password" >
      			<s:param name="label">
    				<s:text name="password" />
    			</s:param>
      		</s:textfield>
      		<s:submit >
      			<s:param name="value">
    				<s:text name="btnSubmit" />
    			</s:param>
      		</s:submit>
      	</s:form>
      </s:i18n>



  4. 實現驗證錯誤信息的國際化

    <!--
    	1.在 validation.xml 中  用message 節點的 key 屬性 來指定國際化資源對應的key來獲取value
    -->
    <field name="user.username">
    	<field-validator type="requiredstring">
    		<param name="trim">true</param>
    		<message key="username" />
    	</field-validator>
    </field>
    
    <!--
    	2.在 Action 類中 用 繼承自ActionSupport的getText(String key);方法來獲取key 對應的value
    -->
    public void validateLogin(){
    	if(user==null||user.getUsername==null||user.getUsername.isEmpty()){
    		this.addFieldError("user.username",getText("username"));
    	}
    }


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