1. <bdo id="8zfej"></bdo>
    <li id="8zfej"><meter id="8zfej"><th id="8zfej"></th></meter></li>

    南京北大青鳥

    全國咨詢電話:15195455103

    三分鐘了解北大青鳥
    當前位置:南京北大青鳥 > 學習園地 > 編程技巧

    Struts2國際化

    來源:南京北大青鳥張府園校區? ? ? 作者:IT教育 ? ??

    國際化(internationalization)是設計和制造容易適應不同區域要求的產品的一種方式。它要求從產品中抽離所有的與語言,國家/地區和文化相關的元素。換言之,應用程序的功能和代碼設

    國際化(internationalization)是設計和制造容易適應不同區域要求的產品的一種方式。它要求從產品中抽離所有的與語言,國家/地區和文化相關的元素。換言之,應用程序的功能和代碼設計考慮在不同地區運行的需要,其代碼簡化了不同本地版本的生產。開發這樣的程序的過程,就稱為國際化。
    很多技術框架都提供國際化支持,struts2的國際化大致上分為頁面的國際化,Action的國際化以及xml的國際化。
    我們將使用Struts2國際化技術實現登錄功能的國際化。實現根據客戶端的瀏覽器區域進行語言的切換,我們以英文和中文為例子。
    右鍵點擊TestStruts2_001項目的“src”文件夾,選擇“New”->“File”在里面新建一文件:

    北大青鳥軟件學校職業教育

    在File name處輸入“struts.properties”。properties文件為資源文件。其內容格式為:“Key=Value”。點擊“Finish”后即可看到打開了該文件,界面如下:

    北大青鳥軟件學校職業教育

    點擊“Add”按鈕,看到如下窗體:

    北大青鳥軟件學校職業教育

    在Name處輸入“struts.custom.i18n.resources”。這個為鍵名。
    在Value處輸入“messageResource”。這個則為鍵值。
    添加完后點擊“Finish”可以看到列表中出現:

    北大青鳥軟件學校職業教育

    用同樣的方法,先新建一個名字叫messageResource_en_US.properties的文件,分別添加鍵值:
    Name Value
    netrobot.login.username username
    netrobot.login.password password
    netrobot.login.submitbutton submit
    netrobot.helloworld Hello World!
    得到下面列表:

    北大青鳥軟件學校職業教育

    使用同樣方法再創建一個messageResource_zh_CN.properties的文件,并且在里面添加鍵值:
    Name Value
    netrobot.login.username 用戶名
    netrobot.login.password 密碼
    netrobot.login.submitbutton 登錄
    netrobot.helloworld 你好!
    得到如圖:

    北大青鳥軟件學校職業教育

    注意,查看messageResource_zh_CN.properties的代碼視圖“Source”可以看到:
    netrobot.login.username=u7528u6237u540D
    netrobot.login.password=u5BC6u7801
    netrobot.login.submitbutton=u767Bu5F55
    netrobot.helloworld=u4F60u597DuFF01
    中文不能直接寫在properties文件中,必須使ascii碼表示。
    然后我們修改一下login.jsp頁面:

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib prefix="s" uri="/struts-tags"%>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head></head>
     6   <body>
     7        <s:form action="loginAction" >
     8         <s:textfield name="username" key="netrobot.login.username"/>
     9         <s:password name="password" key="netrobot.login.password"/>
    10         <s:submit key="netrobot.login.submitbutton"/>
    11     </s:form>       
    12   </body>
    13 </html>

     
    在各個控件后加上相應的key=””,即可實現頁面的國際化。表單控件有很多,其他控件的用法請參考struts2相關文檔。
    我們再修改一下HelloWorld.java,在里面修改代碼如下:

     1 package hello;
     2 import com.opensymphony.xwork2.ActionSupport;
     3 public class HelloWorld extends ActionSupport{
     4     private String message;
     5     public String getMessage() {
     6         return message;
     7     }
     8     public void setMessage(String message) {
     9         this.message = message;
    10     }
    11     public String execute(){
    12         setMessage(getText("netrobot.helloWorld"));
    13         return "success";
    14     }
    15 }

     
    與之前的區別有兩個地方:1. HelloWorld類繼承了ActionSupport,要使用Struts2的國際化,必須繼承該類。2. 通過getText("label.helloWorld")方法獲得國際化后的HelloWorld值。通過getText方法可以實現Action中的國際化。
    運行結果:
    假如運行時,操作系統為英文操作系統,則顯示英文界面如圖:

    北大青鳥軟件學校職業教育
     

    在控制面板將系統的“區域與語言”設置為“中文(中國)”,則顯示中文界面:
     

    北大青鳥軟件學校職業教育

    注意:
    如需添加其他語言,只需增加messageResource_語言_國家.properties文檔即可。語言和國家的代碼請參考相關資料。
    國際化資源文件分為三種級別(1)全局資源文件,可以被整個應該程序引用,也就是struts.custom.i18n.resources = messageResource指定的文件。
    (2) 包級資源文件,每個包的根目錄下可以新建資源文件,僅被當前包中的類訪問.文件名格式為:package_語言代碼_國家代碼.
    (3) Action級資源文件,僅被當前Action引用,名稱為action名_語言代碼_國家代碼
    查找順序為從小范圍到大范圍, Action級優先級大。


    分享到:

    相關閱讀:

    上一篇:異常的相關介紹

    下一篇:Javascript 跨域

    近期文章

    搶試聽名額

    名額僅剩66名

    教育改變生活

    WE CHANGE LIVES

    主站蜘蛛池模板: 久久综合伊人77777| 精品第一国产综合精品蜜芽 | 亚洲国产品综合人成综合网站| 色欲香天天综合网无码| 国产成人综合久久精品| 综合久久久久久久综合网| 狠狠做深爱婷婷久久综合一区| 国产精品亚洲综合久久| 狠狠爱天天综合色欲网| 成人综合久久精品色婷婷| 狠狠色丁香久久婷婷综合| 一本大道加勒比久久综合| 久久婷婷五月综合色高清| 国产成人综合亚洲| 国产一级a爱做综合| 久久久久久综合一区中文字幕| 伊人色综合久久天天| 伊人久久大香线焦综合四虎| 国产成人精品久久综合| 婷婷综合激情五月中文字幕| 亚洲国产成+人+综合| 亚洲综合激情视频| 久久99精品久久久久久综合| 国产综合精品蜜芽| 好了av第四综合无码久久| 色综合网站国产麻豆| 丁香婷婷亚洲六月综合色| 伊人久久青草青青综合| 久久综合久久综合久久| 狠狠色丁香久久婷婷综合五月| 色偷偷91综合久久噜噜| 狠狠色丁香婷婷久久综合蜜芽| 激情综合婷婷色五月蜜桃| 色综合久久久久网| 精品综合一区二区三区| 色天天综合久久久久综合片| 天天综合网天天做天天受| 色婷婷综合久久久久中文字幕| 色综合视频一区二区三区| 亚洲精品综合久久| 伊人久久综合成人网|