随笔 - 23  文章 - 11  trackbacks - 0
<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在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 小小~咖啡豆 阅读(694) 评论(0)  编辑  收藏 所属分类: WebWork

只有注册用户登录后才能发表评论。


网站导航: