WebWork2.2新特性(二):数据校验 validator
WebWork2.2中去掉了原来的JavaScript支持,使用AJAX和DWR进行客户端校验.
DWR最新版本为1.0RC3a(2005-8-29),Webwork里面带的是0.6的版本.
如果使用客户端校验,首先在Web.xml里配置DWR:
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
validators.xml的写法和原来一样,不过就是不能用原来的JavaScript的校验了(如果使用默认的validator,不需要这个文件)
<validators>
<validator name="required"
class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>
<validator name="requiredstring"
class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
<validator name="stringlength"
class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>
</validators>
对action的校验规则写法也是和原来一样,例如增加新闻的校验如下:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="news.title">
<field-validator type="requiredstring">
<message>请输入标题</message>
</field-validator>
</field>
<field name="news.content">
<field-validator type="requiredstring">
<message>请输入内容</message>
</field-validator>
</field>
</validators>
在页面的Form标签中写上validate="true" (注意使用的是alt syntax语法)表示需要进行客户端校验,
如果不写validate="true"则不需要进行客户端校验,仅进行服务器端校验,这就和DWR无关了,和以前的客户端校验一样.
<ww:form action="doAddNews" method="post" name="doAddNews" validate="true">
还需要在WEB-INF下面增加一个dwr.xml配置DWR,如果使用webwork自带的dwr,格式如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 0.4//EN" "http://www.getahead.ltd.uk/dwr/dwr.dtd">
<dwr>
<allow>
<create creator="new" javascript="validator" class="com.opensymphony.webwork.validators.DWRValidator"/>
<convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>
</allow>
</dwr>
如果使用DWR 1.0r3a(用新的版本不知道有没有问题),格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="validator" >
<param name="class" value="com.opensymphony.webwork.validators.DWRValidator" />
</create>
<convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>
</allow>
</dwr>
(注:一定要使用匹配dwr和dwr.xml,否则会报错)
通过查看页面Html源码,我们可以看到页面中包含了/webwork和/dwr的路径,这些路径由Webwork和DWR自动生成文件返回,避免了在每个项目中复制重复的文件.
<script src="/ww22test/webwork/validationClient.js"></script>
<script src="/ww22test/dwr/interface/validator.js"></script>
<script src="/ww22test/dwr/engine.js"></script>
<script src="/ww22test/webwork/template/xhtml/validation.js"></script>
其中字段使用onblur来进行调用校验:
<input type="text" name="news.title" value="" id="doAddNews_news.title" onblur="validate(this);"/>
至此,Webwork的客户端校验可以运行起来了.
分享到:
相关推荐
WebWork 2.2新特性的PPT.rar
webWork2.2+spring +SpringMVC组合 例子
webwork2.2例子带有lib包,针对刚入手的同事
webwork2.2.jar 类包 web work2
调试webwork(没有调试成功) 博文链接:https://lwfshr.iteye.com/blog/137548
webwork的包。webwork开发者不可缺少的
webwork 2.1.7 版 原版留存 xwork.jar
第一部分:webwork 简介 第二部分: 核心概念 第三部分:内容显示 第四部分:高级话题
4、 WebWork为每一次请求构建一个ValueStack,并将所有相关的数据对象(例如:Action对象、Model对象等)放到ValueStack中。再将ValueStack暴露给视图页面,这样页面就可以直接访问后台处理生成的数据。 下面我们...
文档,word形式专门描述webwork验证功能
webwork in action 第一部分:概貌 第二部分:核心内容 第三部分:内容的显示 第四部分:高级话题
本人非常希望能充当一名导游的角色,带领读者逐步游览webwork深入浅出-----WebWork的功能特性和原理。在第一章,我们将提出基于三层架构的Web层需要解决的10个问题,这是本文的纵轴。围绕着纵轴,我们按照横轴的顺序...
STRUTS2.0和1.0有比较大的差异....而在Webwork 2.2之前的Webwork版本,其自身有一套控制反转的实现,Webwork 2.2在Spring 框架的如火如荼发展的背景下,决定放弃控制反转功能的开发,转由Spring实现。
WEBWORK的配置
webwork2快速入门 高级特性 实例
Struts 2 技术详解:基于WebWork核心的MVC开发与实践
通过代码和实例讲解webwork2的特性,很容易上手
webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程webwork教程