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

    主站蜘蛛池模板: 熟天天做天天爱天天爽综合网| 亚洲一区综合在线播放| 久久99国产综合精品女同| 亚洲五月综合网色九月色| 色综合久久天天综线观看| 亚洲一区综合在线播放| 亚洲国产aⅴ综合网| 色婷婷综合和线在线| 久久精品国产91久久综合麻豆自制| 色综合天天综合狠狠| 色综合天天综合网国产成人网| 国产亚洲Av综合人人澡精品| 亚洲综合久久精品无码色欲| 久久天天躁狠狠躁夜夜躁综合 | 久久精品综合电影| 色婷婷综合久久久久中文字幕| 国产精品综合AV一区二区国产馆| 久久99精品综合国产首页| 伊伊人成亚洲综合人网7777| 另类小说图片综合网| 久久桃花综合桃花七七网| 亚洲综合中文字幕无线码| 天堂久久天堂AV色综合| 亚洲综合在线成人一区| 色综合色狠狠天天综合色| 亚洲 欧洲 日韩 综合在线| 色偷偷尼玛图亚洲综合| 国产成人综合久久精品红| 亚洲欧美成人综合久久久| 色综合热无码热国产| 色综合色综合色综合| 亚洲成色在线综合网站| 亚洲国产综合无码一区| 国内偷自视频区视频综合| 伊人青青综合网站| 色欲人妻综合AAAAAAAA网| 国产综合成人久久大片91| 狠狠色色综合网站| 人妻av综合天堂一区| 亚洲伊人久久综合中文成人网| 国产在线五月综合婷婷|