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页面。
分享到:
相关推荐
struts2 annotation 注解的详细介绍及使用方法
标签:annotation、api、jakarta、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
Java注解Annotation用起来很方便,也越来越流行,由于其简单、简练且易于使用等特点,很多开发工具都提供了注解功能,不好的地方就是代码入侵比较严重,所以使用的时候要有一定的选择性。 这篇文章将利用注解,来做...
本文档对利用struts2 注解 annotation 实现文件下载作了简单介绍,并有代码为例,希望对学习struts2注解annotation的人有帮助,特别是需要动态传参方面。
Java Annotation注解技术
struts 拦截器,扩展,以及java annotation 这个是我学习所用,放在此处,作为中转。
参考博文:http://blog.csdn.net/u011638419/article/details/41743049
实战篇:设计自己的Annotation
Java实战篇:设计自己的Annotation.pdf
博文链接:https://flym.iteye.com/blog/174358
标签:annotation、api、jakarta、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译...
标签:annotation、javax、api、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
标签:annotation、javax、api、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以... 如@WebServlet(name="AnnotationServlet",urlPatterns={"/AnnotationServlet","/AnnotationServlet2"})
如果你想知道java annotation是什么?你可以看看
JAVA注解(Annotation).doc JAVA注解(Annotation).doc
Java 注解(Annotation) - 请认准 ih0qtq
java注解annotation
本文针对java初学者或者annotation初次使用者全面地说明了annotation的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation...
struts2 使用Annotation配置实现的小例子,转载供大家学习使用,里面包括了所需的jar包