<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

          在編寫Action這一章節(jié)中,我們通過(guò)幾行java代碼來(lái)驗(yàn)證usernamepassword。當(dāng)然,在大型的應(yīng)用程序中,這將是個(gè)很耗時(shí)的工作,即使這幾行java代碼也可能變成維護(hù)的重大負(fù)擔(dān)。

         令人高興的是,本框架提供了一個(gè)驗(yàn)證框架,這個(gè)驗(yàn)證框架能夠?qū)斎霐?shù)據(jù)進(jìn)行后臺(tái)驗(yàn)證。

    一.             代碼

         驗(yàn)證能夠通過(guò)XML文檔來(lái)描述,或者使用注解(annotations)。XML文檔的名稱以Action的名字為開頭,以“-validation”作為文件名后綴。當(dāng)我們想要驗(yàn)證Logon Action的時(shí)候,我們文件名可以命名為Logon-validation.xml。Logon-validation.xml的代碼如下:

    <!DOCTYPE validators PUBLIC 
    "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
        <field name="username">
            <field-validator type="requiredstring">
                <message>Username is required</message>
            </field-validator>
        </field>
        <field name="password">
            <field-validator type="requiredstring">
                <message>Password is required</message>
            </field-validator>
        </field>
    </validators>

         Logon.java后我們創(chuàng)建一個(gè)Logon-validation.xml文件。并將上述粘貼到該文件中。

         頁(yè)面第一次顯示的時(shí)候,我們不想引發(fā)驗(yàn)證。我們需要在被告訴有輸入不正確前有機(jī)會(huì)輸入數(shù)據(jù)。通過(guò)驗(yàn)證的一種方式是找到一個(gè)ActionSupport基類提供的特定的“input”方法。為了這樣做,我們需要編輯Welcome頁(yè)面和Logon的映射。

         Welcome.jsp的修改代碼如下:

        <li><a href="<s:url action="Logon"/>">Sign On</a></li>
        <li><a href="<s:url action="Logon_input"/>">Sign On</a></li>

        struts.xml的修改代碼如下:

        <action name="Logon" class="tutorial.Logon">
        <action name="Logon_*" method="{1}" class="tutorial.Logon">

    二.             代碼是如何工作的?

        為了打開Logon表單,Welcome頁(yè)面涉及了Logon_input

         1. 框架將這個(gè)引用于Logon_*映射相匹配起來(lái);

         2. “method={1}”屬性被“method=input”替換;

         3. 框架調(diào)用了Logon Action類的input方法;

         4. 因?yàn)?#8220;input”在一個(gè)特殊的方法的列表中,所以驗(yàn)證框架將不會(huì)調(diào)用;

         5.  默認(rèn)的input方法返回一個(gè)“input”作為返回結(jié)果;

         6. 框架展現(xiàn)“Logon.jsp”來(lái)作為回應(yīng)結(jié)果,沒(méi)有帶有任何的驗(yàn)證信息。

         為了提交Logon表單,Login頁(yè)面引用了Logon

         1. 框架為目標(biāo)Action——Logon提供驗(yàn)證;

         2. 找到Logon-validation.xml文件,框架為該類創(chuàng)建了一個(gè)驗(yàn)證對(duì)象,這個(gè)驗(yàn)證對(duì)象基于XML文件;

         3. 驗(yàn)證器對(duì)輸入的數(shù)據(jù)產(chǎn)生作用;

         4. 如果驗(yàn)證失敗,錯(cuò)誤信息被添加到內(nèi)部序列中;

         5. 當(dāng)所有的驗(yàn)證器都已經(jīng)執(zhí)行后,如果框架發(fā)現(xiàn)有錯(cuò)誤信息產(chǎn)生,它尋找“input”結(jié)果對(duì)應(yīng)的頁(yè)面,而不調(diào)用Action類;

         6. 如果通過(guò)驗(yàn)證,調(diào)用Action的方法,返回“success”對(duì)應(yīng)的結(jié)果。

    三.             需要記住的東西

         框架提供了一個(gè)驗(yàn)證框架。一個(gè)輸入域可以綁定一個(gè)驗(yàn)證器集合。如果驗(yàn)證失敗,框架將會(huì)返回輸入信息頁(yè),并顯示錯(cuò)誤信息。為了通過(guò)驗(yàn)證,一個(gè)特殊的“input”方法將被調(diào)用,來(lái)代替默認(rèn)的“execute”方法。

    下一章:本地化輸出

    上一章:選擇結(jié)果

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


    FeedBack:
    # re: Struts2學(xué)習(xí)進(jìn)階(六)——驗(yàn)證輸入值
    2007-08-01 12:12 | dreamstone
    不知道現(xiàn)在struts2的商業(yè)應(yīng)用廣泛不。  回復(fù)  更多評(píng)論
      
    # re: Struts2學(xué)習(xí)進(jìn)階(基礎(chǔ)篇六)——驗(yàn)證輸入值
    2007-08-06 09:35 | Adma
    關(guān)于驗(yàn)證xml的文件可以這樣命名
    該類名-別名(定義的action名)-validation.xml
    這樣的話,可以針對(duì)每個(gè)不同的業(yè)務(wù)進(jìn)行數(shù)據(jù)驗(yàn)證。
      回復(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)

    隨筆分類

    隨筆檔案

    文章分類

    相冊(cè)

    關(guān)注blog

    積分與排名

    • 積分 - 2294312
    • 排名 - 3

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲一级毛片免费在线观看| 国产亚洲精品第一综合| 亚洲精品视频在线免费| 久久精品国产精品亚洲蜜月| 亚洲精品美女久久777777| 日日噜噜噜噜夜夜爽亚洲精品| 亚洲国产综合精品一区在线播放| 国产成人涩涩涩视频在线观看免费| 青青草国产免费久久久下载| 日本免费人成视频播放| 免费v片在线观看无遮挡| 亚洲精品国产精品乱码不卡| 亚洲国产一区明星换脸| 亚洲一区二区三区AV无码| 亚洲AV永久无码精品一百度影院| 亚洲国产成人片在线观看| 亚洲av日韩av高潮潮喷无码| 久久久久久亚洲Av无码精品专口| 亚洲高清视频在线播放| 亚洲91精品麻豆国产系列在线| 亚洲中文无码mv| 怡红院亚洲红怡院在线观看| caoporn国产精品免费| 最新久久免费视频| 久久ww精品w免费人成| 成年性午夜免费视频网站不卡| 日本无吗免费一二区| 亚洲精品无码99在线观看| 亚洲日韩aⅴ在线视频| 亚洲福利秒拍一区二区| 亚洲午夜在线播放| 色www免费视频| 久久久久久AV无码免费网站下载| 91网站免费观看| 国产男女猛烈无遮挡免费视频| 亚洲综合色在线观看亚洲| 亚洲欧洲日韩不卡| 亚洲高清毛片一区二区| eeuss影院www天堂免费| 最近中文字幕无免费| 国产99视频精品免费视频7|