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页面。
分享到:
相关推荐
4. **Struts2与Java注解的结合使用**: - 使用注解可以使Struts2配置更加简洁,减少XML配置文件的体积,提高可读性和维护性。 - 例如,通过在Action类或方法上使用`@Action`注解,可以声明Action的执行逻辑,而...
在Struts2中,注解(Annotation)验证是一个强大的特性,它允许开发者在Action类的方法参数上直接定义验证规则,简化了传统XML配置的复杂性。这篇博文将深入探讨如何使用Struts2的注解进行数据验证。 首先,我们...
Struts2是一个流行的Java Web框架,它提供了丰富的功能来帮助开发者构建动态Web应用程序。在Struts2中,表单数据的校验是一个关键环节,用于确保用户提交的数据符合预期的格式和规则。本篇笔记将详细讲解Struts2中...
Struts2作为一款流行的Java Web框架,其强大的功能和灵活性深受开发者喜爱。在实际开发中,数据校验是必不可少的一环,确保用户输入的数据合法、有效。Struts2提供了内置的验证框架,允许开发者自定义校验规则,以...
在Struts2中,注解(Annotation)是开发者常用的一种元数据表示方式,它允许我们在代码中直接标注信息,简化配置文件。"struts2注解必须包"指的是Struts2提供的一系列注解,它们对于简化Struts2应用的配置和增强其...
Struts2作为一款流行的Java Web框架,其强大的表单验证功能是其亮点之一。自定义校验器在Struts2中扮演着至关重要的角色,它允许开发者根据业务需求定制特定的验证规则,以确保数据输入的正确性和一致性。本文将深入...
2. Annotation配置:通过在Action类的属性上使用注解(@Validated、@FieldMatch等)来定义验证规则,简洁且易于维护。 三、字段验证 1. 必填字段:使用`required`验证器,确保字段非空。 2. 数据类型:例如,`int`, `...
Struts2支持两种主要的验证方式:基于注解的验证(Annotation-based validation)和基于XML的验证(XML-based validation)。这两种方式都可以在Action类或者单独的Validator XML文件中定义验证规则。 1. **基于...
Struts2注解是Struts2框架中的一种简化配置的方式,允许开发者在代码中直接进行配置,无需在XML文件中进行繁琐的设置。这提高了开发效率,并使得代码更具有可读性。 一、配置web.xml 在Struts2中,web.xml是部署...
同时,Struts 2引入了更灵活的Annotation-based验证和自定义Validator插件,使得校验逻辑的编写更加简洁和易于维护。 总之,通过合理利用Struts的Validation框架,我们可以有效地管理用户输入的验证,提高应用程序...
十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...
- **Annotation(标注)类型**:利用注解来进行验证,如`@NotNull`、`@Size`等。 - **Validation**:标记一个类需要被校验,通常配合Struts的配置文件使用。 ### 验证器类型详解 1. **...
在描述中提到的"熟练掌握annotation的应用",就是指熟悉这些Struts2提供的核心注解,并能够灵活地在自定义的Action类中使用它们。 `反射技术`是Java语言的一个强大特性,Struts2利用反射来动态地调用Action类中的...
Struts2提供了内置的验证框架,可以在Action类中添加验证逻辑或者通过XML或注解方式定义校验规则。例如,使用注解进行字段验证: ```java public class UserAction { @NotEmpty(message = "用户名不能为空") ...
2. Annotation-based Configuration:除了XML配置,Struts2还支持使用注解进行配置,这样可以减少配置文件的复杂性,使得代码更加简洁。 三、Struts2的OGNL表达式语言 OGNL(Object-Graph Navigation Language)是...
- **实现方式**:如何利用Java注解来进行数据校验。 **6.7 手动完成输入检验** - **6.7.1 重写validate()** - **实现方式**:如何重写`validate()`方法来进行数据校验。 - **6.7.2 重写validateXxx()** - **...