伊峰獨居

            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 伊峰 閱讀(502) 評論(0)  編輯  收藏 所屬分類: jsp學習

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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 澄城县| 玉田县| 山丹县| 岚皋县| 广宗县| 咸宁市| 东乌珠穆沁旗| 象州县| 澄江县| 新巴尔虎左旗| 墨脱县| 桓台县| 株洲县| 泸水县| 浮山县| 鹿泉市| 临安市| 化德县| 伊春市| 大兴区| 阳城县| 内丘县| 昔阳县| 博湖县| 克拉玛依市| 青浦区| 黄浦区| 萨迦县| 九寨沟县| 四会市| 新郑市| 平泉县| 内江市| 海安县| 成都市| 丁青县| 塘沽区| 额济纳旗| 平原县| 常德市| 中西区|