struts validator framework How to guide

1)
struts-doc-config.xml:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation_doc.xml" />
</plug-in>

2)
Make sure your form extends ValidatorActionForm or ValidatorForm.


3)验证类和验证方法(不是必须的,但要验证到方法一级的颗粒度验证方法必须自己写)
详见:com.huawei.it.mi.validator.MIFieldChecks
public static boolean validateRequired(
Object bean,
ValidatorAction va,
Field field,
ActionErrors errors,
HttpServletRequest request) {...}


4)
WEB-INF/validaotr-rules.xml
<validator name="mi.required" classname="com.huawei.it.mi.validator.MIFieldChecks" 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">
</validator>


5)
确保资源文件里有:errors.required={0} is required.

6)
validation.xml里加入你要验证的action别名(注意这里是action的名字)
<form name="/frontDoc">
<field property="name" depends="mi.required">
<arg0 key="一线市场-标题" resource="false" />
<var>
<var-name>methodsNeedValidation</var-name>
<var-value>saveToDraft</var-value>
</var>
</field>
</form>
注:如果有多个方法你可以使用逗号分割符。如:<var-value>saveToDraft,publish</var-value>

7)
确保你的struts配置文件里相应的action里的各参数配置正确:

1、validate="true";
2、input="mi.document.frontDocError"你的显示错误的页面
3、error页面上有<html:errors/>
<action path="/frontDoc" type="com.huawei.it.mi.document.action.FrontDocAction" name="fronDocForm" scope="request" validate="true" input="mi.document.frontDocError" parameter="method">
<forward name="frontDocCreate" path="mi.document.frontDocCreate" />
<forward name="frontDocList" path="mi.document.frontDocList">
</forward>
<forward name="success" path="mi.document.frontDocSuccess">
</forward>
<forward name="error" path="mi.document.frontDocError">
</forward>
</action>

8) U can go!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值