struts2的数据验证

一、基本原理:
当一个Action类实现了ActionSupport类就间接实现了Validateable接口,而Validateable接口只有一个validate方法。当我们在action类里重写这个方法后,Struts2在调用指定的方法之前就会先执行validate方法。
而validate方法要和this.addFieldError()或this.addActionError()联合使用才能发挥验证的效果,
当Struts2发现了Field或Action错误,会自动返回”input”,而将要执行的其他方法不会被执行。既然返回了”input”,则需要在struts.xml文件中配一个相对应的result,而返回的页面自然是提交数据的页面。
二、示例及说明:
1、例如,validate方法如下:
public void validate() {
if("".equals(this.numbers) || null == this.numbers) {
this.addFieldError("number", "号码不能为空!");
this.addActionError("处理动作失败!");
}
}
2、说明:
2.1、number为该Action类的属性,由前台传进。
2.2、 this.addFieldError("number", "号码不能为空!");将错误信息压入Strust2值栈的errors中(可以在前台用<s:debug></s:debug>查看)
2.3、在页面中用以下代码获取错误信息:
<s:property value="errors.number"/>
(不要忘记在页面声明struts标签库:<%@taglib uri="/struts-tags" prefix="s"%>)
3、当进行action跳转时,不论调用哪个方法都会先执行validate方法,显然有些不合理。
Struts2提供了针对单个方法的验证:
只需将validate改名为”validate方法名”即可,例如:
我们要针对add方法,则验证方法为validateAdd(),这样当调用其他方法时,validateAdd()
就不会执。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值