`

17.3.4 使用@Java注解配置Validator

阅读更多
http://book.51cto.com  2009-12-15 16:53  刘京华  清华大学出版社  我要评论(0)
摘要:《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》第17章Struts 2.x高级应用,本章讲述的是Struts 2颠覆了Web编程的传统,Action中完全去掉了request、response等Servlet API,并自动完成数据转换、赋值。本节为大家介绍使用@Java注解配置Validator。
标签:Java Web  Java Web整合开发王者归来

限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
17.3.4  使用@Java注解配置Validator
Struts 2也支持用Java注解配置数据校验。Action同样需要继承自ActionSupport类,并用@Validation注解,表示该Action需要数据校验。然后在方法上配置@Validations。@Validations可指定多条校验规则,具体的配置见下面的代码:
代码17.11  BookAction.java
package com.helloweenvsfei.struts2.action; 
import org.apache.struts2.interceptor.validation.SkipValidation; 
import com.opensymphony.xwork2.ActionSupport; 
import com.opensymphony.xwork2.validator.annotations.DateRangeFieldValidator; 
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator; 
import com.opensymphony.xwork2.validator.annotations.Validation; 
import com.opensymphony.xwork2.validator.annotations.Validations; 
import com.opensymphony.xwork2.validator.annotations.ValidatorType; 

@Validation                                         // 标记为需要数据校验
public class BookAction extends ActionSupport { // 继承自ActionSupport

    // 添加书籍页面
    @Validations( 
            requiredStrings = {  
                    @RequiredStringValidator(type = ValidatorType.SIMPLE, trim=true, fieldName = "book.name", message = "请输入 书籍名称. *"), 
                    @RequiredStringValidator(type = ValidatorType.SIMPLE,trim=true, fieldName = "book.author", message = "请输 入书籍作者. *") 
                    }, 
            dateRangeFields = {@DateRangeFieldValidator(type = ValidatorType.SIMPLE, fieldName = "book.publishedDate", min = "1900-01-          01", max = "2200-01-01", message = "日期必须大于${min} 小于                ${max}, 当前值为 ${book.publishedDate}.")} 
    ) 
    public String add() {  
        bookList.add(book); 
        title = "<br/><br/>添加书籍成功<br/><br/>"; 
        return "success"; 
    }  

     
    @SkipValidation                     // 书籍列表,@SkipValidation跳过校验
    public String list() { 
        return "list"; 
    } 
}
该配置与上面的XML配置是等价的。因为只对addBook.action进行校验,因此只在方法add()上添加了@Validations以及校验规则。其他不需要校验的方法需要加上@SlipValidation,否则也会被校验。
另外,使用@Validator时Struts 2默认的验证方式是全局验证模式,因此只能配置一种验证方式。如果要对同一个Action的两个方法配置两种不同的验证方式,需要重写Struts 2的默认拦截器。
注意:被校验的Action要继承ActionSupport类,并要在action配置中指定名为input的JSP,因为Struts 2在校验失败后会自动返回input页面。
分享到:
评论

相关推荐

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    Spring中文帮助文档

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

    Spring API

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

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA程序开发大全---上半部分

    3.1 使用JDT编写Java项目 40 3.2 MyEclipse中的Java代码编辑器 43 3.2.1 Java代码编辑器基本功能 43 3.2.2 自定义Java代码编辑器 45 3.2.3 Java代码编辑器相关视图 50 3.3 MyEclipse中的Java代码编译器 51 3.4 ...

    Java开发技术大全 电子版

    Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释...

    Spring 2.0 开发参考手册

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

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

    5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor ...

    spring chm文档

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

    2016年八年级数学下册17.3.4求一次函数的表达式课件新版华东师大版

    2016年八年级数学下册17.3.4求一次函数的表达式课件新版华东师大版

    华东师大版八年级数学下册导学案:17.3.4 求一次函数表达式.docx

    华东师大版八年级数学下册导学案:17.3.4 求一次函数表达式.docx

    2014-2015学年八年级数学下册 17.3.4 求一次函数的表达式课件 (新版)华东师大版

    2014-2015学年八年级数学下册 17.3.4 求一次函数的表达式课件 (新版)华东师大版

    ASP.NET.4揭秘

    3.5 使用regularexpressionvalidator控件114 3.6 使用customvalidator控件116 3.7 使用validationsummary控件122 3.8 创建自定义验证控件126 3.8.1 创建lengthvalidator控件127 3.8.2 创建ajaxvalidator控件129 3.9 ...

    Hibernate实战(第2版 中文高清版)

     1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不匹配   1.2.1 粒度问题   1.2.2 子类型问题   1.2.3 同一性问题   1.2.4 与关联相关的问题   1.2.5 数据导航的问题   ...

    java面试常见基础(深层次,高级研发)

    17.3.4. 比较不匹配的数据类型 46 17.4. 关于索引的排序 46 18. 数据库没有orderby默认如何排序。 46 19. 分布式事务如何实现。 46 19.1. 1 事务/分布式事务 47 19.1.1. 1.1 事务 47 19.1.2. 1.2 分布式事务与 XA ...

    javaSE代码实例

    17.3.4 ReentrantReadWriteLock读/写锁的具体使用 391 17.4 信号量的使用 393 17.4.1 Semaphore类简介 393 17.4.2 Semaphore类的具体使用 394 17.5 队列 396 17.5.1 Queue接口介绍 396 17.5.2 ...

Global site tag (gtag.js) - Google Analytics