前言:验证分为数据格式验证和业务逻辑验证,也可分为客户端验证和服务器端的验证。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
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
return bookList;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
同时需要指出,若要实现在客户端验证要在