`

WebWork2.2新特性(二):数据校验 validator

    博客分类:
  • Ajax
阅读更多
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源码.pdf

    - **新的特性支持**:WebWork 2.2版本引入了许多新特性,如增强的国际化支持、改进的安全机制等。 #### 实际开发中的注意事项 1. **熟悉配置文件**:理解配置文件的结构和用途是使用WebWork的关键。配置文件定义了...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...

    Spring 2.0 开发参考手册

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@...

    spring chm文档

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@...

    Spring API

    2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件...

    Spring中文帮助文档

    5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP...

Global site tag (gtag.js) - Google Analytics