WebWork中的数据验证 (转载)

原文地址:http://www.blogjava.net/wangzhouyu/archive/2006/08/11/63055.html

在WebWork中进行数据验证其实有好几种方式

一、直接在execute()方法中进行验证


public String execute() {
boolean validationPassed = true;
if (StringUtils.isBlank(user.getName())) {
addActionError(getText("user.name.empty"));
validationPassed = false;
}

if (StringUtils.isBlank(user.getAddress())) {
addActionError(getText("user.address.empty"));
validationPassed = false;
}

return (validationPassed ? SUCCESS : INPUT);
}

因为整个action是放入OgnlValueStack中的,页面就可以取出这些Error,然后显示出来,在Input对应的页面加入如下代码:


<ww:if test="hasActionErrors"><!--你可以查看ActionSupport类源码,其中有boolean hasActionErrors()这个方法-->
<span class="errormessage">
<b>Errors:</b><br/>
<ww:iterator value="actionErrors">
<li><ww:property value="value[0]"/></li>
</ww:iterator>
</span>
</ww:if>


二、是用Validateable接口提供的validate()方法进行验证


ActionSupport就继承了这个接口
public void validate() {
if (StringUtils.isBlank(user.getName())) {
addActionError(getText("user.name.empty"));
}
if (StringUtils.isBlank(user.getAddress())) {
addActionError(getText("user.address.empty"));
}
}

然后在对的action的xwork.xml配置中,使用validationWorkflowStack拦截器,并确保有input result。
那么一旦验证出错将会返回input页面,但此时并无错误信息提示。将第一种方式显示错误信息代码加入到input 页面,那么错误信息也将显示出来。

三、使用WebWork的(标准形式)的验证
具体的步骤:


1.建立validators.xml文件,如果没有自己定义的校验器则可以不用建立。
2.建立对应action的检验文件。
检验文件名有两种方式
(1)Action类名-validation.xml
(2)Action类名-Action别名-validation.xml
其中Action别名就是xwork.xml配置中action的name
3.页面使用<ww/>tag
页面的form和域都使用<ww/>tag方式
4.拦截器使用validationWorkflowStack


四、WebWork的客户端验证
在使用第三种方式时候,通过对<ww:form>里面增加validate="true"即可实现客户端验证(在<head></head>之间增加一个<ww:head/>tag效果更好,里面包括了css的定义)

五、DWR验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值