<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0
         說(shuō)明:本文翻譯自:struts-2.0.8\docs\docs\validating-input.html

         在驗(yàn)證輸入這一小節(jié)中,我們使用驗(yàn)證框架來(lái)驗(yàn)證提交到表單的數(shù)據(jù)。在“本地化輸出”這一節(jié)中,我們將驗(yàn)證信息移到消息資源文件中。

         當(dāng)創(chuàng)建web應(yīng)用程序的時(shí)候,我們發(fā)現(xiàn)我們?cè)诙鄠€(gè)頁(yè)面中常常使用一些相同的消息或字段標(biāo)簽。如果我們的系統(tǒng)由不同語(yǔ)言的用戶(hù)使用時(shí),我們也想要本地化消息。

    一.             本地化驗(yàn)證信息和屬性值

         讓我們?cè)黾右粋€(gè)消息資源文件,并且在其中加入驗(yàn)證信息和字段標(biāo)簽。

    1.代碼

         本框架將消息資源與類(lèi)聯(lián)系起來(lái)。為了為Logon action增加一個(gè)消息資源,我們需要將消息資源文件命名為Logon.properties,并且在Logon Action后設(shè)置它的classpath。但是,大多數(shù)人發(fā)現(xiàn)為某一個(gè)類(lèi)使用一個(gè)單獨(dú)的資源文件時(shí)間和低效率的工作。很多人更喜歡為一整個(gè)類(lèi)包增加一個(gè)消息資源文件。為了做到這樣,我們可以簡(jiǎn)單的為某個(gè)包增加一個(gè)paacage.properties文件。例如。我們?yōu)?/span>tutorial包增加一個(gè)資源文件tutorial/package.properties。該文件內(nèi)容如下:

    requiredstring = $\{getText(fieldName)} is required.
    password = Password
    username = User Name

         我們還需要改變一下驗(yàn)證器和Logon頁(yè)面。

         Logon-validation.xml修改的地方:

     <message>Username is required</message>
    <message key="requiredstring"/>

    <message>Password is required</message>
    <message key="requiredstring"/>

         Logon,jsp修改的地方如下:

    <s:textfield label="User Name" name="username"/>
    <s:textfield label="%{getText('username')}" name="username"/>

    <s:password label="Password" name="password" />
    <s:password label="%{getText('password')}" name="password" />

    2. 代碼是如何工作的?

       1)“key”屬性告訴驗(yàn)證器為一個(gè)消息資源捆綁驗(yàn)證;

        2) 在資源捆綁中,表達(dá)式:${getText(fieldName)}告訴框架在資源文件中查找字段名。這種方式下我們能夠?yàn)樗械姆强镇?yàn)證使用相同的默認(rèn)信息;

         3)相似地,在文本域中,表達(dá)式:%{getText(‘password’)}告訴框架在資源文件中尋找“password”。

    二.             本地化其余的信息

        其余的頁(yè)面元素也能夠被本地化。例如,我們需要在資源文件中增加“Hello World”和“Missing page”這兩個(gè)消息。

    1. 代碼

    tutorial/package.properties

    # ... 
    HelloWorld.message = Struts is up and running ...
    Missing.message = This feature is under construction. Please try again in the next interation.

        這對(duì)HelloWorld是可運(yùn)行的,因?yàn)?/span>Hello World已經(jīng)存在于包中。但是它對(duì)于默認(rèn)的Missing action是不可用的,除非你將我們的基類(lèi)加入到tutorial包中。

        TutorialSupport.java的代碼如下:

    package tutorial;
    import com.opensymphony.xwork2.ActionSupport;
    public class TutorialSupport extends ActionSupport {}

        并且還需要更新一下struts.xml默認(rèn)的通配符映射,如下:

    <action name="*" class="tutorial.TutorialSupport">
     <result>/{1}.jsp</result>
    </action>

        現(xiàn)在,我們可以更新HelloWorld.jspMissing.jsp來(lái)查找信息。

        Missing.jsp的代碼如下:

    This feature is under construction. Please try again in the next interation.
    <s:text name="Missing.message"/>

        在HelloWorld的情況下,我們從Action類(lèi)設(shè)置消息。讓我們更新一下class,使用資源文件來(lái)代替它。HelloWorld的代碼如下:

    package tutorial;
    public class HelloWorld extends ExampleSupport {
        
    public static final String MESSAGE = "HelloWorld.message";
        
    public String execute() throws Exception {
            setMessage(getText(MESSAGE));
            
    return SUCCESS;
        }

     
     
    //  
    }


    2. 代碼是如何工作的?

       1)對(duì)于Missing.jsp,我們使用text標(biāo)簽來(lái)查找資源文件中的消息;
     
      2) HelloWorld中,我們?cè)?/span>Action類(lèi)中使用getText()方法來(lái)獲得消息;

       3)  HelloWorld.jsp中,只是顯示由Action類(lèi)設(shè)置的消息,所以不要做任何改變。

    三.             需要記住的東西

        框架支持國(guó)際化。為了本地化應(yīng)用,我們?cè)黾恿速Y源文件,并且更新某些元素或標(biāo)簽來(lái)應(yīng)用資源文件中的資源而不是靜態(tài)的文本。

    下一篇:struts2-blank-2.0.8實(shí)例解析
    上一篇:驗(yàn)證輸入信息

    posted on 2007-08-01 08:55 阿蜜果 閱讀(2593) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): Struts2


    FeedBack:
    # re: Struts學(xué)習(xí)進(jìn)階(七)——本地化輸出
    2007-08-01 19:53 | jvlstudio
    # re: Struts學(xué)習(xí)進(jìn)階(基礎(chǔ)篇七)——本地化輸出
    2007-08-04 11:13 | dsad
    www.cctvten.com  回復(fù)  更多評(píng)論
      
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

          生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來(lái)如此。
          我的作品:
          玩轉(zhuǎn)Axure RP  (2015年12月出版)
          

          Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    相冊(cè)

    關(guān)注blog

    積分與排名

    • 積分 - 2298116
    • 排名 - 3

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲欧洲免费无码| 国产免费久久精品丫丫| 亚洲人成网站18禁止久久影院| 国产亚洲一区二区三区在线| 久久久青草青青国产亚洲免观| 亚洲精品国产精品乱码不卞 | 亚洲国产无线乱码在线观看| 久久久久se色偷偷亚洲精品av | 国产L精品国产亚洲区久久| 亚洲国产成人久久一区久久| 亚洲高清最新av网站| 亚洲乱码中文字幕综合234| 亚洲国产成人精品91久久久| 亚洲国产中文v高清在线观看| 中文字幕亚洲激情| 亚洲精品无码成人AAA片| 亚洲AV无码乱码国产麻豆穿越| 亚洲av之男人的天堂网站| 亚洲人成影院在线| 亚洲婷婷在线视频| 亚洲中文无码卡通动漫野外| 亚洲国产成人无码AV在线| 菠萝菠萝蜜在线免费视频| 黄色网址免费在线观看| 中文字幕无码日韩专区免费| 99re在线免费视频| 日韩欧美一区二区三区免费观看| 国外成人免费高清激情视频| 全亚洲最新黄色特级网站 | 亚洲熟妇中文字幕五十中出| 亚洲av永久无码精品古装片| 亚洲第一精品电影网| 亚洲色一区二区三区四区| 一级毛片正片免费视频手机看| 你是我的城池营垒免费观看完整版| 99re在线免费视频| 永久免费av无码网站大全| 国产aⅴ无码专区亚洲av麻豆| 老色鬼久久亚洲AV综合| 亚洲日韩国产一区二区三区在线| 香港一级毛片免费看|