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

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

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

    WebWork2.2新特性(二):數據校驗 validator

    除經特別注明外,本站文章版權歸JScud Develop團隊或其原作者所有.
    轉載請注明作者和來源.  scud(飛云小俠)    歡迎訪問 JScud Develop



    WebWork2.2中去掉了原來的JavaScript支持,使用AJAX和DWR進行客戶端校驗.

    DWR最新版本為1.0RC3a(2005-8-29),Webwork里面帶的是0.6的版本.

    如果使用客戶端校驗,首先在Web.xml里配置DWR:

        <servlet>
            <servlet-name>dwr</servlet-name>
            <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>true</param-value>
            </init-param>
        </servlet>

        <servlet-mapping>
            <servlet-name>dwr</servlet-name>
            <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping> 



    validators.xml的寫法和原來一樣,不過就是不能用原來的JavaScript的校驗了(如果使用默認的validator,不需要這個文件)

     <validators> 
         <validator name="required"
             class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>
            
         <validator name="requiredstring"
             class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
     
         <validator name="stringlength"
          class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>      
     </validators>

     

    對action的校驗規則寫法也是和原來一樣,例如增加新聞的校驗如下:

     <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
     <validators>
      <field name="news.title">
       <field-validator type="requiredstring">
        <message>請輸入標題</message>
       </field-validator>
      </field> 
      <field name="news.content">
       <field-validator type="requiredstring">
        <message>請輸入內容</message>
       </field-validator>
      </field>
      
     </validators>  



    在頁面的Form標簽中寫上validate="true" (注意使用的是alt syntax語法)表示需要進行客戶端校驗,
    如果不寫validate="true"則不需要進行客戶端校驗,僅進行服務器端校驗,這就和DWR無關了,和以前的客戶端校驗一樣.

    <ww:form action="doAddNews" method="post" name="doAddNews" validate="true"> 

     
     
    還需要在WEB-INF下面增加一個dwr.xml配置DWR,如果使用webwork自帶的dwr,格式如下

     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 0.4//EN" "http://www.getahead.ltd.uk/dwr/dwr.dtd">
     <dwr>
         <allow>
             <create creator="new" javascript="validator" class="com.opensymphony.webwork.validators.DWRValidator"/>
             <convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>
         </allow>
     </dwr> 


    如果使用DWR 1.0r3a(用新的版本不知道有沒有問題),格式如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
    <dwr>
     <allow>
      <create creator="new" javascript="validator" >
      <param name="class" value="com.opensymphony.webwork.validators.DWRValidator" />
      </create>
      <convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>
     </allow>
    </dwr> 

    (注:一定要使用匹配dwr和dwr.xml,否則會報錯)


    通過查看頁面Html源碼,我們可以看到頁面中包含了/webwork和/dwr的路徑,這些路徑由Webwork和DWR自動生成文件返回,避免了在每個項目中復制重復的文件.

    <script src="/ww22test/webwork/validationClient.js"></script>
    <script src="/ww22test/dwr/interface/validator.js"></script>
    <script src="/ww22test/dwr/engine.js"></script>
    <script src="/ww22test/webwork/template/xhtml/validation.js"></script> 


    其中字段使用onblur來進行調用校驗:

    <input type="text" name="news.title" value="" id="doAddNews_news.title" onblur="validate(this);"/> 

    至此,Webwork的客戶端校驗可以運行起來了.

    (實際操作中,DWR的校驗可能還會有些問題,等待開發人員來進行修正了)

    BUG發現:

    目前發現當表單元素的名字沒有.的時候(例如是"name"),DWR校驗器工作正常,而如果類似上面的表單元素名字類似news.title,校驗器工作不正常.

    不知道是DWR的問題還是WebWork的問題,需要研究一下...

     

    posted on 2005-08-29 18:50 Scud(飛云小俠) 閱讀(1663) 評論(2)  編輯  收藏 所屬分類: WEB

    評論

    # re: WebWork2.2新特性(二):數據校驗 validator 2005-10-21 00:14 scud(飛云小俠)

    bug已經修正,或者是我看錯了.反正好了.  回復  更多評論   

    # re: WebWork2.2新特性(二):數據校驗 validator 2007-03-30 15:45 jetty

    如果沒有用WebWork,就簡單的jsp 可以用DWR技術 實現驗證嗎?
    可以發郵件:xlm_hz@126.com
      回復  更多評論   

    <2005年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    公告

    文章發布許可
    創造共用協議:署名,非商業,保持一致

    我的郵件
    cnscud # gmail


    常用鏈接

    留言簿(15)

    隨筆分類(113)

    隨筆檔案(103)

    相冊

    友情鏈接

    技術網站

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费一级不卡毛片| 国产免费人成视频尤勿视频| 97人妻精品全国免费视频 | 免费一看一级毛片| 亚洲精品无播放器在线播放| 成人免费无码大片a毛片| 国产亚洲精品VA片在线播放| 国产v精品成人免费视频400条| 亚洲一区二区三区播放在线 | 全部免费毛片在线播放| 久久亚洲精品国产精品黑人| 一级毛片aaaaaa免费看| 亚洲欧洲精品国产区| 久久久久久久91精品免费观看| 亚洲国产精品成人久久久| 无码国产精品一区二区免费式影视| 亚洲人成人77777网站不卡| 欧洲精品成人免费视频在线观看 | 日本免费人成黄页网观看视频 | 成人黄网站片免费视频| 亚洲高清免费在线观看| 97在线观看永久免费视频| 亚洲成在人线在线播放无码| 亚洲成人一区二区| 国产无遮挡裸体免费视频在线观看| 亚洲精品成人网站在线播放| 在线观看免费污视频| 九九九精品视频免费| 久久精品国产亚洲AV高清热| 最近最新中文字幕完整版免费高清| 美女18毛片免费视频| 久久99国产亚洲高清观看首页| jjizz全部免费看片| 最新亚洲人成无码网站| 亚洲国产综合精品中文第一区| 最近2019中文免费字幕| 又硬又粗又长又爽免费看| 亚洲天堂电影在线观看| 又爽又高潮的BB视频免费看| 日韩视频在线观看免费| 亚洲国产精品美女久久久久|