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

    南京中博教育

    全國咨詢電話:17368476151

    三分鐘了解中博教育
    當(dāng)前位置:南京中博教育 > 學(xué)習(xí)園地 > 編程技巧

    Struts2國際化

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

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

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

    北大青鳥軟件學(xué)校職業(yè)教育

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

    北大青鳥軟件學(xué)校職業(yè)教育

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

    北大青鳥軟件學(xué)校職業(yè)教育

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

    北大青鳥軟件學(xué)校職業(yè)教育

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

    北大青鳥軟件學(xué)校職業(yè)教育

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

    北大青鳥軟件學(xué)校職業(yè)教育

    注意,查看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>

     
    在各個控件后加上相應(yīng)的key=””,即可實現(xiàn)頁面的國際化。表單控件有很多,其他控件的用法請參考struts2相關(guān)文檔。
    我們再修改一下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 }

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

    北大青鳥軟件學(xué)校職業(yè)教育
     

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

    北大青鳥軟件學(xué)校職業(yè)教育

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


    分享到:

    相關(guān)閱讀:

    近期文章

    搶試聽名額

    名額僅剩66名

    教育改變生活

    WE CHANGE LIVES

    主站蜘蛛池模板: 国产精品无码久久综合网| 国产婷婷综合在线视频| 亚洲国产一成久久精品国产成人综合 | 亚洲情综合五月天| 亚洲综合网站色欲色欲| 久久综合久久自在自线精品自| 亚洲精品欧美综合四区| 91精品国产综合久久精品| 图图资源网亚洲综合网站| 狠狠色丁香婷婷综合久久片| 亚洲伊人久久综合影院| 亚洲明星合成图综合区在线| 色天使亚洲综合一区二区| 色综合久久综合中文综合网| 亚洲 欧洲 日韩 综合在线| 国内精品综合久久久40p| 色天天天综合色天天碰| 久久综合狠狠综合久久| 色噜噜狠狠狠综合曰曰曰| 亚洲国产欧洲综合997久久| 97色婷婷成人综合在线观看| 国产精品综合专区中文字幕免费播放| 亚洲色图综合网站| 亚洲综合色丁香麻豆| 亚洲综合在线视频| 狠色狠色狠狠色综合久久| 亚洲综合另类小说色区色噜噜| 亚洲综合一区国产精品| 亚洲乱码中文字幕小综合| 久久精品国产91久久综合麻豆自制| 国产亚洲Av综合人人澡精品| 色欲综合久久中文字幕网| 色噜噜狠狠成人中文综合| 久久精品亚洲综合一品| 一本久久a久久精品综合夜夜| 天堂久久天堂AV色综合| 亚洲综合激情九月婷婷 | 成人综合国产乱在线| 精品久久综合一区二区| 婷婷亚洲综合一区二区| 色噜噜狠狠色综合免费视频|