伊峰獨居

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            30 隨筆 :: 30 文章 :: 5 評論 :: 0 Trackbacks

          主要是兩個配置文件和資源文件的修改,然后就是在jsp中輸出驗證的結果

          validator-rules.xml是驗證注冊類,用于定義驗證邏輯,它的部分代碼
          <validator name="required"
          <!—①-->
          className="org.apache.struts.util.StrutsValidator"
          method="validateRequired"
          <!—② -->
          methodParams="java.lang.Object,
          org.apache.commons.validator.validatorAction,
          org.apache.commons.validator.Field,
          org.apache.struts.action.ActionErrors,
          javax.servlet.http.HttpServletRequest"
          msg="errors.required">
          <!—③ -->
          <javascript><![CDATA[
          function validateRequired(form) {
          var bValid = true;
          var focusField = null;
          var i = 0;
          var fields = new Array();


          這個是required驗證的部分代碼。

          validation.xml文件用于定義實際應用中的規則驗證(哪些域需要驗證,要驗證哪些驗證(比如required驗證、minlength驗證等等))

          ApplicationResources文件主要是用于保存驗證結果信息

          我用的是eclipse+myeclipse
          首先要在項目里面加入struts框架,這個不用說了吧,然后添加一個validation.xml文件

          <form-validation>
          ?<formset>
          ??<form name="RegisterForm">
          ???<field property="userName" depends="required,minlength,maxlength">
          ????<arg0 key="label.username" />
          ????<arg1 name="minlength" key="3" resource="false" />
          ????<arg1 name="maxlength" key="17" resource="false" />
          ????<var>
          ?????? <var-name>minlength</var-name>
          ?????? <var-value>3</var-value>
          ????</var>
          ??? <var>
          ????? ?<var-name>maxlength</var-name>
          ????? ?<var-value>17</var-value>
          ???? </var>
          ???</field>
          ?</form>
          ?</formset>
          </form-validation>

          form name="RegisterForm指定驗證名,也是actionform的名稱,后面會用到。

          field property="userName指定要驗證的域,也就是actionform中的屬性

          depends="required,minlength,maxlength指定要通過哪些驗證,這里有required,minlength,maxlength驗證,他們依次進行驗證,如果前面的驗證沒有通過,那么錯誤信息就保存到錯誤變量里面,不在進行下面的驗證

          arg0 key="label.username則是在資源ApplicationResources文件中定義的字段,驗證結果中信息顯示需要。
          如errors.required={0} is required,arg0的值會代替{0},是第一個變量
          arg1 name="minlength" key="3" resource="false" ,是第二個變量,但要注意的是 resource="false" ,表示它直接采用key屬性所指定的值3去代替{1},而不使用ApplicationResources文件中定義的字段,下面有對minlength的定義
          ? <var>
          ?????? <var-name>minlength</var-name>
          ?????? <var-value>3</var-value>
          ????</var>

          這些定義完之后,就是對資源文件的修改了,就是指定字段的替換

          最后在jsp文件中運用驗證,簡單的一段代碼:

          <td width="219" height="30" align="right">
          ????<font size="2">
          ?????<b>
          ??????<bean:message key="label.username" />
          ??????:
          ?????</b>
          ????</font>
          ???</td>
          ???<td width="218" height="30">
          ????<html:text property="userName" maxlength="17" size="20" styleClass="smallInput" />
          ????<font color="red">
          ?????*
          ????</font>
          ???</td>
          ???<td width="291" height="30">
          ????<font size="2" color="red">
          ?????<b>
          ??????<html:messages id="message" property="userName">
          ???????<li>
          ????????<bean:write name="message" />
          ???????</li>
          ??????</html:messages>
          ?????</b>
          ????</font>
          ???</td>
          ??</tr>
          紅色部分就是進行驗證后的信息顯示,其中藍色的部分名稱要與validation.xml文件中的保持一致!!!

          posted on 2006-09-24 22:43 伊峰 閱讀(505) 評論(0)  編輯  收藏 所屬分類: jsp學習
          主站蜘蛛池模板: 吕梁市| 申扎县| 凤城市| 峨边| 土默特右旗| 西和县| 富源县| 乌拉特前旗| 玉门市| 龙岩市| 合阳县| 大石桥市| 高密市| 浦江县| 田东县| 莎车县| 新晃| 汉沽区| 礼泉县| 老河口市| 成武县| 瑞金市| 石河子市| 正安县| 荣成市| 会昌县| 措勤县| 平阳县| 黎平县| 乡城县| 池州市| 黄平县| 泾源县| 林甸县| 孟州市| 郧西县| 雅安市| 金川县| 万山特区| 陇川县| 绥江县|