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

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

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

    Java學習

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

     

    表單驗證:使用struts中的validator框架

    第一步:

    我們在struts-config.xml里:
    Java代碼
    1. <action-mappings >   
    2. <action   
    3. attribute="logForm"   
    4. input="/form/log.jsp"   
    5. name="logForm"   
    6. path="/log"   
    7. scope="request"   
    8. type="com.yourcompany.struts.action.LogAction"   
    9. validate="true"   
    10. <forward name="s" path="/form/MyJsp.jsp" />   
    11. </action>   
    里面必須加上validate="true"這么句代碼,否則,驗證機制將可能不會運行。
    另外,配置文件中還須加入以下代碼,表示使用插件:
    Java代碼
    1. <plug-in className="org.apache.struts.validator.ValidatorPlugIn">  
    2.         <set-property property="pathnames"  
    3.             value="/WEB-INF/validator-rules.xml,  
    4.                                               /WEB-INF/validation.xml" />  
    5. </plug-in>   

    注意加入<plug-in>標簽的位置,該標簽應該放在struts配置文件中的最后,具體位置在元素<struts- config></struts-config>內(nèi)部,在<message-resources parameter="com.blog.struts.ApplicationResources" />之后,切記要注意位置,不然報錯。
    其次,在寫法上,value的內(nèi)容中/WEB-INF/validator-rules.xml是默認的,因為在項目使用struts框架時該文件已經(jīng)在 此目錄層次下面了,那么之后的/WEB-INF/validation.xml"又是什么呢?這里需要我們手動在WEB-INF目錄下新建 validation.xml文件,這個文件有什么用?先看下其中寫的什么。
    Java代碼
    1. <form-validation>  
    2.     <global>  
    3.     </global>  
    4.     <formset>  
    5.         <form name="userForm">  
    6.             <field property="userName"  
    7.                 depends="required,minlength,maxlength">  
    8.                 <arg0 key="userForm.userName" />  
    9.                 <arg1 name="minlength" key="${var:min}"  
    10.                     resource="false" />  
    11.                 <arg1 name="maxlength" key="${var:max}"  
    12.                     resource="false" />  
    13.                 <var>  
    14.                     <var-name>min</var-name>  
    15.                     <var-value>6</var-value>  
    16.                 </var>  
    17.                 <var>  
    18.                     <var-name>max</var-name>  
    19.                     <var-value>20</var-value>  
    20.                 </var>  
    21.             </field>  
    22.             <field property="password"  
    23.                 depends="required,minlength,maxlength,mask">  
    24.                 <arg0 key="userForm.password" />  
    25.                 <arg1 name="minlength" key="${var:min}"  
    26.                     resource="true" />  
    27.                 <arg1 name="maxlength" key="${var:max}"  
    28.                     resource="true" />  
    29.                 <var>  
    30.                     <var-name>min</var-name>  
    31.                     <var-value>6</var-value>  
    32.                 </var>  
    33.                 <var>  
    34.                     <var-name>max</var-name>  
    35.                     <var-value>20</var-value>  
    36.                 </var>  
    37.                 <var>  
    38.                     <var-name>mask</var-name>  
    39.                     <var-value>^"w+$</var-value>  
    40.                 </var>  
    41.             </field>  
    42.             <field property="email" depends="required,email">  
    43.                 <arg0 key="userForm.email" />  
    44.             </field>  
    45.             <field property="name" depends="required,maxlength">  
    46.                 <arg0 key="userForm.name" />  
    47.                 <arg1 name="maxlength" key="${var:max}"  
    48.                     resource="false" />  
    49.                 <var>  
    50.                     <var-name>max</var-name>  
    51.                     <var-value>20</var-value>  
    52.                 </var>  
    53.             </field>            
    54.             <field property="tel" depends="required,mask">  
    55.                 <arg0 key="userForm.tel" />  
    56.                 <var>  
    57.                     <var-name>mask</var-name>  
    58.                     <var-value>^"(?("d{3,4})")?[-|]?("d{7,8})$</var-value>  
    59.                 </var>  
    60.             </field>  
    61.             <field property="address" depends="required">  
    62.                 <arg0 key="userForm.address" />  
    63.             </field>  
    64.         </form>  
    65.         <form name="categoryForm">  
    66.             <field property="categoryName" depends="required">  
    67.                 <arg0 key="categoryForm.categoryName" />  
    68.             </field>  
    69.         </form>  
    70.     </formset>  
    71. </form-validation>  

    Validation.xml:該配置文件是專供應用程序使用的,其中所描述的是特定ActionForm會用到validation-rule.xml文件中的哪些驗證器。

    1.<form-validation>元素
    <form-validation>元素是validation.xml文件的根元素,它包含兩個子元 素:<global>和<formset>元素。其中<global>元素可以出現(xiàn)零次或多 次,<formset>元素可以出現(xiàn)一次或多次。

    2.<global>元素
    <global>元素中通過<constant>子元素來定義常量表達式,每個<constant>子元素定義一個常量表達式,如果有多個常量表達式要定義則可以配置多個<constant>來實現(xiàn)。

    3.<formset>元素
    <formset>元素包括兩個子元素<constant>和<form>。<constant>元素可以出現(xiàn)零次或多次,<form>元素可以出現(xiàn)一次或多次。
    這里需要注意的是,在<form>標簽中有包括<field>子元素。

    4.<field>元素
    <field>元素通過property屬性指定字段的名字,通過depends屬性指定具體的驗證規(guī)則,驗證規(guī)則來源于 validation-rule.xml中所寫的驗證方法,這里我們要簡單介紹一下validation-rule.xml里面的驗證規(guī)則是默認,那如果 我們有需要定義自己的驗證規(guī)則也可以寫在里面。<field>元素可包含的子元素 為<msg>,<arg>,<var>。

    第二步
    把validator框架使用的消息文本添加到應用的Resource Bundle中,如在ApplicationResources.properties中加入例如:
    Java代碼
    1. errors.header=<b><font color=ff0000><ul>  
    2. errors.footer=</ul></font></b>  
    3. errors.prefix=<li>  
    4. errors.suffix=</li>  
    5.   
    6. error.isexit="u7528"u6237"u540d"u5df2"u5b58"u5728"uff0c"u8bf7"u91cd"u65b0"u6ce8"u518c"uff01  
    7. error.username="u7528"u6237"u540d"u4e0d"u5408"u6cd5"uff0c"u8bf7"u91cd"u65b0"u586b"u5199"u7528"u6237"u540d"uff01  
    8. error.password="u5bc6"u7801"u4e0d"u5408"u6cd5"uff0c"u8bf7"u91cd"u65b0"u586b"u5199"u5bc6"u7801"uff01  
    9.   
    10. errors.required={0}"u4e3a"u5fc5"u586b"u5b57"u6bb5  
    11. errors.minlength={0}"u7684"u957f"u5ea6"u4e0d"u80fd"u5c0f"u4e8e{1}   
    12. errors.maxlength={0}"u7684"u957f"u5ea6"u4e0d"u80fd"u5927"u4e8e{1}   
    13. errors.email={0}"u5fc5"u987b"u4e3a"u6709"u6548"u90ae"u4ef6"u5730"u5740  
    14.   
    15. userForm.userName="u7528"u6237"u540d;  
    16. userForm.password="u5bc6"u7801;  
    17. userForm.email=Email;  
    18. userForm.name="u59d3"u540d;  
    19. userForm.sex="u6027"u522b;  
    20. userForm.tel="u8054"u7cfb"u7535"u8bdd;  
    21. userForm.address="u8054"u7cfb"u5730"u5740;  
    22. userForm.userType="u7528"u6237"u7c7b"u522b;  
    23.   
    24. categoryForm.categoryName="u7c7b"u522b"u540d"u79f0  



    第三步
    將Form的extends  ActionForm改為extends  ValidatorForm


    第四步
    在jsp頁面當中,如果我們要創(chuàng)建一個在服務(wù)器端驗證的頁面,我們只需要在控件之后添加<html:errors property="password"/>,即:
    <tr>
         <td>密碼:</td>
         <td><html:password property="password" /><html:errors property="password"/></td>
    </tr>
    注意<html:errors property="password"/>之中的property對應的是form中定義的屬性。

    那么如果我們要創(chuàng)建一個在客戶端進行驗證的頁面,我們需要如下步驟:
    1.在<html:form></html:form>的外面加上<html:javascript formName="userForm"/>
    2.在<html:form>中加入屬性onsubmit=”return validateCardForm(this);”,即;
    <html:form action="/save_user" method="post" enctype="multipart/form-data" onsubmit="return validateUserForm(this);">
    3.同服務(wù)器端驗證一樣<td><html:password property="password" /><html:errors property="password"/></td>
    重點
    使用validator進行表單驗證的步驟如上,其中最為關(guān)鍵的一步是,validation.xml文件中為表單配置驗證規(guī)則的寫法。
    注意事項如下:
    <form-validation>
    <global>
    在<global>中定義的常量表達式,在文件的其余地方可以直接引用。
    即,這里配置的常量表達式是全局的
    寫法為:
    <constant>
    <constant-name>phone</constant-name>
    <constant-value>^"(?("d{3})")?[-|]?("d{8})$<constant-value>
    //定義一個名為:phone的正則表達式,3位區(qū)號+8位號碼
    </constant>
    </global>
    <formset>
    <form name="userForm">
    <field property="userName"
    //這里的property要與form表單屬性名對應
    depends="required,minlength,maxlength">
    //這里的depends用于指定對該屬性使用什么驗證規(guī)則,其規(guī)則來自于validator-rule.xml文件中所寫的規(guī)則。指定多個驗證器時,會依次調(diào)用,直到該表單通過所有驗證。
    <arg0 key="userForm.userName" />
    //arg0對應的是ApplicationResources.property中的{0},即:
    “errors.required={0}不能為空”,其作用是將arg0中key所對應的資源文件中的“userForm.userName= 用戶名”的文中或者說是值替換到“errors.required={0}不能為空”中的{0},這樣頁面輸出的是“用戶名不能為空”;
    下面的arg1同理{1}
    Java代碼
    1.                 <arg1 name="minlength" key="${var:min}"  
    2.                     resource="false" />  
    3.                 <arg1 name="maxlength" key="${var:max}"  
    4.                     resource="false" />  
    5.                 <var>  
    6.                     <var-name>min</var-name>  
    7.                     <var-value>6</var-value>  
    8.                 </var>  
    9.                 //var對應key="${var:min}"中的min  
    10.                 <var>  
    11.                     <var-name>max</var-name>  
    12.                     <var-value>20</var-value>  
    13.                 </var>  
    14.             </field>  
    15. </form>  
    16.     </formset>  
    17. </form-validation> 

    轉(zhuǎn):http://www.javaeye.com/topic/192579

    posted on 2009-07-09 10:17 找個美女做老婆 閱讀(386) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     

    導航

    統(tǒng)計

    公告

    本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品无码久久一线| 91嫩草亚洲精品| 久久精品国产精品亚洲艾| 亚洲国产高清在线精品一区| 黄色一级视频免费观看| 狼群影院在线观看免费观看直播 | 国内精品久久久久影院免费| 国产大片免费网站不卡美女| 中文字幕亚洲综合久久| 永久看日本大片免费35分钟| 亚洲视频一区在线| 男人的好免费观看在线视频| 亚洲依依成人亚洲社区| 永久免费看bbb| 成人免费网站视频www| 在线亚洲午夜理论AV大片| a级精品九九九大片免费看| 亚洲A丁香五香天堂网| 中中文字幕亚洲无线码| 人妻免费一区二区三区最新| 亚洲av无码专区在线观看素人| 污视频网站免费在线观看| 在线观看亚洲天天一三视| 中文字幕免费观看| 亚洲热线99精品视频| 人人公开免费超级碰碰碰视频| 国产亚洲欧洲Aⅴ综合一区| 黄网站在线播放视频免费观看| 亚洲性久久久影院| 无码人妻一区二区三区免费n鬼沢| 丝袜熟女国偷自产中文字幕亚洲| 国内精品一级毛片免费看| 亚洲一级毛片免费看| **aaaaa毛片免费同男同女| 亚洲国产熟亚洲女视频| 欧洲乱码伦视频免费| 精品亚洲AV无码一区二区三区 | 99精品视频在线观看免费专区| 国产亚洲sss在线播放| 日韩亚洲国产综合久久久| 日韩亚洲人成在线综合|