关于ValidatorForm的validate方法

本文详细介绍了Struts2框架中的验证机制,包括如何通过继承ValidatorForm类来实现服务器端验证,以及如何配置validation.xml文件来进行客户端验证。此外,还提供了具体的ActionForm验证示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、validate()方法:使自己的ActionForm继承ValidatorForm类,在里面编写自己的方法:

public ActionErrors validate (ActionMapping mapping,HttpServletRequest request) {

ActionErrors errors = new ActionErrors();

。。。。。。

if ( mytext.equals("aaa") ) {

//my exampleerrors.add("mytext",new ActionError("mytext.error"));

}

。。。。。。

return errors;

}

此时,如果写了这个方法,就会屏蔽掉在Validation.xml中定义的验证部分,换句话说就是系统运行时,Validation.xml里对应此ActionForm的定义的错误验证部分不实行,如果不写这个方法的话,系统运行时会进行Validation.xml里对应此ActionForm的定义的错误验证部分的操作。此类方法是在服务器端进行验证,验证部分代码客户端不可见。

2、创建你的ActionForm并让它继承org.apache.struts.validator.ValidatorForm类。创建你的Action实现,并和上面定义的ActionForm关联。这里需要注意的是,在定义此Action时一定将validate属性设置为true,并且在你定义的ActionForm中不要实现它的validate方法――这就意味着你将使用ValidatorForm的validate方法,这样才能保证你的错误验证正常进行。配置validation.xml文件。基本内容如下:

<form-validation>

<!-- ========== Default Language Form Definitions ===================== -->

<formset>

<form name="custGNewForm">需要验证页面上form的名字

<field property="certifiCode"需要校验的属性

depends="required,maxlength">校验内容

<arg0 key="prompt.certifiCode"/>ApplicationResource文件中对应

<arg1 key="${var:maxlength}" name="maxlength" resouce="false"/>

<var>确定最长限制的长度

<var-name>maxlength</var-name>

<var-value>20</var-value>

</var>

</field>

注意:此处的arg0和arg1就代表了ApplicationResources文件中使用“{}”括起来的参数。比如:

errors.range={0} is not in the range {1} through {2}.

定义了三个参数,所以你这里也要定义<arg0>、<arg1>、<arg2>三个参数才能完整的显示错误信息。

errors.maxlength={0} cannot be greater than {2} characters.

定义了0、2两个参数,所以你就需要定义<arg0>和<arg2>两个参数。

<field property="userName"

depends="required,maxlength">

<arg0 key="prompt.userName"/>

<arg2 key="${var:maxlength}" name="maxlength" resouce="false"/>

<var>

<var-name>maxlength</var-name>

<var-value>80</var-value>

</var>

</field>

<field property="email"

depends="email">

<arg0 key="prompt.email"/>

</field>

</form>

<form name="custGNewCheckForm">

<field property="certifiCode"

depends="required">

<arg0 key="prompt.certifiCode"/>

</field>

</form>

</formset>

</form-validation>

在校验页面的<body>前添加如下内容:<html:errors/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值