伊峰獨居

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

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

          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文件用于定義實際應(yīng)用中的規(guī)則驗證(哪些域需要驗證,要驗證哪些驗證(比如required驗證、minlength驗證等等))

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

          我用的是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驗證,他們依次進(jìn)行驗證,如果前面的驗證沒有通過,那么錯誤信息就保存到錯誤變量里面,不在進(jìn)行下面的驗證

          arg0 key="label.username則是在資源ApplicationResources文件中定義的字段,驗證結(jié)果中信息顯示需要。
          如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>
          紅色部分就是進(jìn)行驗證后的信息顯示,其中藍(lán)色的部分名稱要與validation.xml文件中的保持一致!?。?br />

          posted on 2006-09-24 22:43 伊峰 閱讀(505) 評論(0)  編輯  收藏 所屬分類: jsp學(xué)習(xí)

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 吴桥县| 家居| 金昌市| 汤原县| 健康| 溆浦县| 盐山县| 武穴市| 拉萨市| 囊谦县| 来安县| 松滋市| 新邵县| 沅江市| 建始县| 眉山市| 娄底市| 德兴市| 遂昌县| 天津市| 比如县| 正安县| 灌南县| 徐汇区| 措勤县| 齐河县| 南安市| 甘泉县| 江西省| 云南省| 临海市| 丹寨县| 潞城市| 梁山县| 特克斯县| 甘谷县| 诸城市| 来宾市| 沭阳县| 湘乡市| 湘潭市|