在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>
<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>
<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驗證,只支持
a) 修改對應(yīng)的頁面form
<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ā)