`
hkme
  • 浏览: 140717 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

WebWork2.2新特性(一):数据校验 validator
WebWork2.2中去掉了原来的JavaScript支持,使用AJAX和DWR进行客户端校验.
DWR最新版本为1.0RC3a(2005-8-29),Webwork里面带的是0.6的版本.
如果使用客户端校验,首先在Web.xml里配置DWR:

代码
  1.     
  2. <servlet>  
  3.         <servlet-name>dwr</servlet-name>  
  4.         <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>  
  5.         <init-param>  
  6.             <param-name>debug</param-name>  
  7.             <param-value>true</param-value>  
  8.         </init-param>  
  9.     </servlet>  
  10.     <servlet-mapping>  
  11.         <servlet-name>dwr</servlet-name>  
  12.         <url-pattern>/dwr/*</url-pattern>  
  13. </servlet-mapping>    
<script>render_code();</script>

 

validators.xml的写法和原来一样,不过就是不能用原来的JavaScript的校验了(如果使用默认的validator,不需要这个文件)

代码
  1. <validators>    
  2.     <validator name="required"    
  3.         class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>  
  4.            
  5.     <validator name="requiredstring"  
  6.         class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>  
  7.   
  8.     <validator name="stringlength"    
  9.      class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>         
  10. </validators>  
<script>render_code();</script>
对action的校验规则写法也是和原来一样,例如增加新闻的校验如下:
代码
  1. <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">  
  2. <validators>  
  3.  <field name="news.title">  
  4.   <field-validator type="requiredstring">  
  5.    <message>请输入标题</message>  
  6.   </field-validator>  
  7.  </field>    
  8.  <field name="news.content">  
  9.   <field-validator type="requiredstring">  
  10.    <message>请输入内容</message>  
  11.   </field-validator>  
  12.  </field>  
  13.     
  14. </validators>      
<script>render_code();</script>
在页面的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,格式如下
代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 0.4//EN" "http://www.getahead.ltd.uk/dwr/dwr.dtd">  
  4. <dwr>  
  5.     <allow>  
  6.         <create creator="new" javascript="validator" class="com.opensymphony.webwork.validators.DWRValidator"/>  
  7.         <convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>  
  8.     </allow>  
  9. </dwr>     
<script>render_code();</script>
如果使用DWR 1.0r3a(用新的版本不知道有没有问题),格式如下:
代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">  
  3. <dwr>  
  4.  <allow>  
  5.   <create creator="new" javascript="validator" >  
  6.   <param name="class" value="com.opensymphony.webwork.validators.DWRValidator" />  
  7.   </create>  
  8.   <convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>  
  9.  </allow>  
  10. </dwr>     
<script>render_code();</script>

(注:一定要使用匹配dwr和dwr.xml,否则会报错)

 

通过查看页面Html源码,我们可以看到页面中包含了/webwork和/dwr的路径,这些路径由Webwork和DWR自动生成文件返回,避免了在每个项目中复制重复的文件.

代码
  1. <script src="/ww22test/webwork/validationClient.js"></script>  
  2. <script src="/ww22test/dwr/interface/validator.js"></script>  
  3. <script src="/ww22test/dwr/engine.js"></script>  
  4. <script src="/ww22test/webwork/template/xhtml/validation.js"></script>     
<script>render_code();</script>
其中字段使用onblur来进行调用校验:
<input type="text" name="news.title" value="" id="doAddNews_news.title" onblur="validate(this);"/>
至此,Webwork的客户端校验可以运行起来了.
分享到:
评论

相关推荐

    WebWork 2.2新特性的PPT.rar

    WebWork 2.2版本在原有的基础上引入了若干新特性,提升了开发效率和用户体验。在这个PPT压缩包中,包含了一个Word文档和一个PowerPoint演示文稿,它们详细介绍了这些新特性。 首先,WebWork 2.2在动作映射(Action ...

    webWork2.2+spring +SpringMVC组合 例子

    【标题】:“webWork2.2+spring+SpringMVC组合例子”是一个示例项目,展示了如何将三个经典的Java Web框架——WebWork2.2、Spring以及Spring MVC整合在一起,以构建一个完整的Web应用程序。这样的组合可以充分利用各...

    WebWork2.2入门

    WebWork2.2是其一个较早但仍然广泛使用的版本,它引入了许多创新特性,如动作映射、拦截器、类型转换等,以提升开发效率和代码质量。 ### MVC架构 在WebWork2.2中,MVC模式是核心设计思想。模型(Model)负责业务...

    webwork2.2例子带有lib包

    WebWork2.2是一个基于Java的轻量级MVC(模型-视图-控制器)框架,主要用于构建Web应用程序。这个框架在2000年代初期非常流行,它提供了丰富的功能和灵活性,帮助开发者构建高性能、可维护的Web应用。本压缩包包含了...

    webwork2.2

    webwork2.2.jar 类包 web work2

    webwork-2.2.2

    webwork的包。webwork开发者不可缺少的

    webwork-2.1.7 xwork.jar

    webwork 2.1.7 版 原版留存 xwork.jar

    剖析Webwork源码.pdf

    3. **Validator**:用于校验Action中传入的数据是否符合预期,支持各种验证规则和消息定制。 4. **Type Conversion**:自动将请求参数转换为Action方法所需的类型。 5. **Result**:定义如何处理Action执行后的结果...

    webwork

    在提供的"Webwork2 Guide.pdf"文档中,你可能会学习到如何安装配置WebWork2环境,创建和运行第一个WebWork应用程序,理解Action和Interceptor的工作原理,以及如何利用WebWork的特性进行表单处理、异常管理和国际化...

    webwork-register.rar_webwork_webwork 验证_webwork spring

    6. **数据验证**:WebWork提供内置的验证机制,可以在服务器端对用户输入的数据进行校验,防止无效数据的入库。结合Spring的Validator接口,可以自定义更复杂的验证规则。 7. **视图渲染**:WebWork通常与JSP或...

    webwork验证框架

    WebWork验证框架提供了多种灵活且强大的特性,使得数据验证过程变得更加简单和高效。 1. **可配置的验证文件**: 验证文件是一个独立的XML配置文件,它定义了验证规则和对应的验证器。这种分离使得开发者能够在不...

    webwork类型转换入门一

    WebWork是一个基于Java的开源MVC(模型-视图-控制器)框架,它在早期的Web开发中被广泛使用,特别是在Struts1之后,作为替代方案出现。本篇将介绍WebWork的基础知识,特别是它的类型转换机制,这对于理解Web应用程序...

    webwork学习资料

    通过阅读和实践,你可以了解如何创建第一个WebWork应用,如何编写动作类,以及如何利用WebWork的各种特性来构建高效、可维护的Web应用程序。此外,深入理解WebWork框架将有助于你进一步学习其他Java MVC框架,比如...

    webwork.pdf

    WebWork 2.0和Struts 2.0的出现,标志着Java Web开发领域的一次重大革新,它们不仅继承了MVC架构的优点,还通过一系列创新特性,如Action驱动模式、拦截器体系、输入校验、国际化支持以及与Spring的深度集成,极大地...

    webwork中文参考手册

    WebWork是一个开源的Java Web应用框架,主要用于构建企业级的Web应用程序。这个“WebWork中文参考手册”显然是针对想要学习和使用WebWork框架的初学者准备的资源。手册可能包含了框架的基本概念、核心组件、配置、...

    webwork用到的jar包

    WebWork是一个基于Java的MVC(Model-...总的来说,WebWork是一个功能强大的框架,它提供了许多现代Web开发所需的特性。通过学习和使用WebWork 2.1.7,初学者不仅可以深入了解MVC架构,还能提升自己的Java Web开发能力。

    Struts2中关于ValueStack的一些操作

    4、 WebWork为每一次请求构建一个ValueStack,并将所有相关的数据对象(例如:Action对象、Model对象等)放到ValueStack中。再将ValueStack暴露给视图页面,这样页面就可以直接访问后台处理生成的数据。 下面我们...

Global site tag (gtag.js) - Google Analytics