在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验证
posted on 2006-08-11 17:36
小小~咖啡豆 阅读(705)
评论(0) 编辑 收藏 所属分类:
WebWork