`
peonyzzdx
  • 浏览: 592063 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2校验(三):注解式(java annotation 验证)

 
阅读更多
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 = Validator
Type.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页面。
分享到:
评论

相关推荐

    struts 拦截器,扩展,以及java annotation

    4. **Struts2与Java注解的结合使用**: - 使用注解可以使Struts2配置更加简洁,减少XML配置文件的体积,提高可读性和维护性。 - 例如,通过在Action类或方法上使用`@Action`注解,可以声明Action的执行逻辑,而...

    使用struts2的annotation验证

    在Struts2中,注解(Annotation)验证是一个强大的特性,它允许开发者在Action类的方法参数上直接定义验证规则,简化了传统XML配置的复杂性。这篇博文将深入探讨如何使用Struts2的注解进行数据验证。 首先,我们...

    struts2笔记之校验表单信息

    Struts2是一个流行的Java Web框架,它提供了丰富的功能来帮助开发者构建动态Web应用程序。在Struts2中,表单数据的校验是一个关键环节,用于确保用户提交的数据符合预期的格式和规则。本篇笔记将详细讲解Struts2中...

    Struts2自定义校验框架

    Struts2作为一款流行的Java Web框架,其强大的功能和灵活性深受开发者喜爱。在实际开发中,数据校验是必不可少的一环,确保用户输入的数据合法、有效。Struts2提供了内置的验证框架,允许开发者自定义校验规则,以...

    struts2注解必须包

    在Struts2中,注解(Annotation)是开发者常用的一种元数据表示方式,它允许我们在代码中直接标注信息,简化配置文件。"struts2注解必须包"指的是Struts2提供的一系列注解,它们对于简化Struts2应用的配置和增强其...

    struts2的自定义校验器代码

    Struts2作为一款流行的Java Web框架,其强大的表单验证功能是其亮点之一。自定义校验器在Struts2中扮演着至关重要的角色,它允许开发者根据业务需求定制特定的验证规则,以确保数据输入的正确性和一致性。本文将深入...

    struts2表单验证

    2. Annotation配置:通过在Action类的属性上使用注解(@Validated、@FieldMatch等)来定义验证规则,简洁且易于维护。 三、字段验证 1. 必填字段:使用`required`验证器,确保字段非空。 2. 数据类型:例如,`int`, `...

    如何自定义Struts2表单验证后的错误信息显示格式/样式

    Struts2支持两种主要的验证方式:基于注解的验证(Annotation-based validation)和基于XML的验证(XML-based validation)。这两种方式都可以在Action类或者单独的Validator XML文件中定义验证规则。 1. **基于...

    Struts2注解

    Struts2注解是Struts2框架中的一种简化配置的方式,允许开发者在代码中直接进行配置,无需在XML文件中进行繁琐的设置。这提高了开发效率,并使得代码更具有可读性。 一、配置web.xml 在Struts2中,web.xml是部署...

    Struts使用validation框架来实现校验,4种以上的校验规则

    同时,Struts 2引入了更灵活的Annotation-based验证和自定义Validator插件,使得校验逻辑的编写更加简洁和易于维护。 总之,通过合理利用Struts的Validation框架,我们可以有效地管理用户输入的验证,提高应用程序...

    Struts2入门教程(全新完整版)

    十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...

    struts验证框架-validation的验证框架

    - **Annotation(标注)类型**:利用注解来进行验证,如`@NotNull`、`@Size`等。 - **Validation**:标记一个类需要被校验,通常配合Struts的配置文件使用。 ### 验证器类型详解 1. **...

    一个mini版本的struts2实现

    在描述中提到的"熟练掌握annotation的应用",就是指熟悉这些Struts2提供的核心注解,并能够灵活地在自定义的Action类中使用它们。 `反射技术`是Java语言的一个强大特性,Struts2利用反射来动态地调用Action类中的...

    Struts2.0入门培训,Struts2.0的快速教程

    Struts2提供了内置的验证框架,可以在Action类中添加验证逻辑或者通过XML或注解方式定义校验规则。例如,使用注解进行字段验证: ```java public class UserAction { @NotEmpty(message = "用户名不能为空") ...

    struts深入浅出

    2. Annotation-based Configuration:除了XML配置,Struts2还支持使用注解进行配置,这样可以减少配置文件的复杂性,使得代码更加简洁。 三、Struts2的OGNL表达式语言 OGNL(Object-Graph Navigation Language)是...

    Struts2学习文档

    - **实现方式**:如何利用Java注解来进行数据校验。 **6.7 手动完成输入检验** - **6.7.1 重写validate()** - **实现方式**:如何重写`validate()`方法来进行数据校验。 - **6.7.2 重写validateXxx()** - **...

Global site tag (gtag.js) - Google Analytics