Everything is a contribution

          走過Java的點點滴滴,與大家共勉~
          隨筆 - 21, 文章 - 0, 評論 - 10, 引用 - 0
          數(shù)據(jù)加載中……

          在struts中使用validator執(zhí)行UI驗證

          在使用struts時,如果使用common validator進(jìn)行頁面數(shù)據(jù)的有效性驗證時,可以減少很多代碼量,通過配置文件就可以方便的進(jìn)行數(shù)據(jù)的校驗工作.

          在做所有的配置前,先檢查jsp頁面是否有以下內(nèi)容(沒有請?zhí)砑由?:
          <%-- Error Messages --%>
          <logic:messagesPresent>
              <div class="error">
                  <html:messages id="error">
                      <c:out value="${error}"/><br/>
                  </html:messages>
              </div>
          </logic:messagesPresent>

          <%-- Success Messages --%>
          <logic:messagesPresent message="true">
              <div class="message">
                  <html:messages id="message" message="true">
                      <c:out value="${message}"/><br/>
                  </html:messages>
              </div>
          </logic:messagesPresent>

          其中的css可以自己根據(jù)需要定義,上面使用JSTL標(biāo)簽.

          使用validator需要進(jìn)行如下配置:
          1) 首先在struts-config.xml中添加:
          <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
              <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/>
          </plug-in>

          2) 配置validation.xml文件,內(nèi)容如下:
          <form-validation>
              <formset>
                  <form name="loginForm">
                      <field property="userid" depends="required">
                          <arg0 key="login.user.id" />
                      </field>
                      <field property="password" depends="required">
                          <arg0 key="login.password" />
                      </field>
                      <field property="repasswd" depends="required">
                          <arg0 key="login.password.retry" />
                      </field>
                      <field property="username" depends="required">
                          <arg0 key="login.username" />
                      </field>
                      <field property="sex" depends="required">
                          <arg0 key="login.sex" />
                      </field>
                      <field property="college" depends="required">
                          <arg0 key="login.college" />
                      </field>
                      <field property="department" depends="required">
                          <arg0 key="login.department" />
                      </field>
                      <field property="idNumber" depends="required">
                          <arg0 key="login.id.number" />
                      </field>
                      <field property="birthday" depends="required, date">
                          <arg0 key="login.birthday" />
                      </field>
                      <field property="telephone" depends="required">
                          <arg0 key="login.telephone" />
                      </field>
                      <field property="email" depends="required, email">
                          <arg0 key="login.email" />
                      </field>
                  </form>
              </formset>
          </form-validation>


          3) 在struts中設(shè)置對應(yīng)的action的validate值為true:
          <action path="/login" name="loginForm" parameter="method" type="com.timeshonor.struts.action.LoginAction" validate="true" input="/login.jsp">
              <forward name="success" path="/success.jsp" />
          </action>
          如果使用的是動態(tài)Form,則在struts-config.xml中會有如下配置:
          <form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
              <form-property name="userid" type="java.lang.String" />
              <form-property name="password" type="java.lang.String" />
              <form-property name="repasswd" type="java.lang.String" />
              <form-property name="username" type="java.lang.String" />
              <form-property name="sex" type="java.lang.String" />
              <form-property name="college" type="java.lang.String" />
              <form-property name="department" type="java.lang.String" />
              <form-property name="idNumber" type="java.lang.String" />
              <form-property name="birthday" type="java.lang.String" />
              <form-property name="telephone" type="java.lang.String" />
              <form-property name="email" type="java.lang.String" />
          </form-bean>
          注:validator插件不支持struts的ActionForm驗證,只支持
          DynaValidatorForm和ValidatorForm驗證,如果不使用動態(tài)form可以讓需要驗證的Form類從ValidatorForm繼承,不需要實現(xiàn)validate方法.

          4) 執(zhí)行完1、2、3步就可以執(zhí)行UI服務(wù)器端驗證,如果想配置前臺javascript驗證時,還需要做如下配置:
          a) 修改對應(yīng)的頁面form
          為如下內(nèi)容:
          <html:form action="/login" method="post" onsubmit="return validateLoginForm(this);">
          b) 確保下面這一行內(nèi)容在對應(yīng)頁面的form里:
          <html:submit>提交</html:submit>
          c) 在頁面的form元素后面添加以下內(nèi)容:
          <html:javascript formName="loginForm" dynamicJavascript="true" staticJavascript="true" />

          posted on 2007-11-26 10:45 Kevin Xia 閱讀(521) 評論(0)  編輯  收藏 所屬分類: Java開發(fā)

          主站蜘蛛池模板: 兰考县| 兰坪| 九江市| 牟定县| 郎溪县| 大宁县| 封开县| 余庆县| 阿瓦提县| 西乌珠穆沁旗| 通许县| 永顺县| 南阳市| 吉首市| 龙川县| 汉川市| 富锦市| 盐山县| 天津市| 福海县| 恩施市| 原阳县| 柳林县| 景泰县| 北辰区| 澜沧| 登封市| 廊坊市| 英德市| 凉山| 宁武县| 潞西市| 台安县| 长垣县| 重庆市| 泸水县| 彰化县| 正镶白旗| 黄冈市| 保康县| 神农架林区|