Struts 2検証--注記ベース
4048 ワード
一般的には、コンフィギュレーションファイルの中でもJavaコードに注釈を付けることができる(現在の推測)限り、Strutsにとって、これらのコンフィギュレーションは注釈に置かれているにもかかわらず、彼らのメカニズムは同じであり、ブロックでブロックし、xmlと注釈の違いは主にJavaの検証コードに現れていることを検証します.xml私の理解は、プロファイルをロードしてプロファイル内のデータに基づいて対応するactionと検証することであり、注記はactionを反射的に抽出して検証するので、本質的には同じであり、ただ1つの方法を変えただけである(理解が間違っている可能性がある).
strutsのvalidate検証は実はvalidationブロッキングで行われています.ここでdefaultStackブロッキングを使用することを指定し、そこにvalidation.excludeMethodsというパラメータを指定することができます.前に言ったのは検証ブロッキングの名前validationです(struts 2コアパッケージのstruts-default.xmlで見ることができます).後に指定したパラメータ名があります.このパラメータは検証されない方法を指定します.後にtoLoginViewを追加すればいいです.カンマで区切って、検証されません.
strutsのvalidate検証は実はvalidationブロッキングで行われています.ここでdefaultStackブロッキングを使用することを指定し、そこにvalidation.excludeMethodsというパラメータを指定することができます.前に言ったのは検証ブロッキングの名前validationです(struts 2コアパッケージのstruts-default.xmlで見ることができます).後に指定したパラメータ名があります.このパラメータは検証されない方法を指定します.後にtoLoginViewを追加すればいいです.カンマで区切って、検証されません.
@Validations(
requiredStrings = {
@RequiredStringValidator(fieldName = "admin.username", message = " !"),
@RequiredStringValidator(fieldName = "admin.password", message = " !"),
@RequiredStringValidator(fieldName = "admin.email", message = "E-mail !")
},
requiredFields = {
@RequiredFieldValidator(fieldName = "admin.isAccountEnabled", message = " !")
},
stringLengthFields = {
@StringLengthFieldValidator(fieldName = "admin.username", minLength = "2", maxLength = "20", message = " ${minLength} ${maxLength} !"),
@StringLengthFieldValidator(fieldName = "admin.password", minLength = "4", maxLength = "20", message = " ${minLength} ${maxLength} !")
},
emails = {
@EmailValidator(fieldName = "admin.email", message = "E-mail !")
},
regexFields = {
@RegexFieldValidator(fieldName = "admin.username", expression = "^[0-9a-z_A-Z\u4e00-\u9fa5]+$", message = " 、 、 !")
}
)
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;
}
}
,