struts2注解方式实现数据验证

前言:验证分为数据格式验证和业务逻辑验证,也可分为客户端验证和服务器端的验证。struts2的验证对于客户端验证意义不大,因为客户端验证完全可以用js实现。

package com.belstar.action;

import java.util.ArrayList;
import java.util.List;

import org.apache.struts2.interceptor.validation.SkipValidation;

import com.belstar.bean.Book;
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.Validations;
import com.opensymphony.xwork2.validator.annotations.ValidatorType;

//@Validation()
public class BookAction extends ActionSupport {

 private static final long serialVersionUID = -38241432793476229L;

 public static List bookList = new ArrayList();

 private String title;

 private Book book;
 
 // 添加书籍页面
 @SkipValidation
 public String initAdd() {
  return "initAdd";
 }

 // 添加书籍
 @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 = "

添加书籍成功

";
  return "success";
 }

 // 书籍列表
 @SkipValidation
 public String list() {
  return "list";
 }

 // 清空书籍列表
 @SkipValidation
 public String clear() {
  bookList.clear();
  title = "

清空书籍列表成功

";
  return "list";
 }

 public Book getBook() {
  return book;
 }

 public void setBook(Book book) {
  this.book = book;
 }

 public List getBookList() {
  return bookList;
 }

 public String getTitle() {
  return title;
 }

 public void setTitle(String title) {
  this.title = title;
 }
}

 

同时需要指出,若要实现在客户端验证要在标签中加入validate="true"属性,同时在struts.xml文件中需要配置input验证失败对应的页面。

你可能感兴趣的:(struts2)