Struts2 註釋類型
Struts 2 應用程序可以使用Java5註釋作爲替代XML和Java屬性配置。這裏是清單的不同的類別有關的最重要的註解:
命名空間註釋(動作註釋):
@ Namespace註釋允許在Action類中,而不是基於零配置的約定動作的命名空間的定義。
@Namespace("/content") public class Employee extends ActionSupport{ ... }
結果註釋 - (動作譯註):
@ Result註解允許在Action類中,而不是一個XML文件中定義的動作結果。
@Result(name="success", value="/success.jsp") public class Employee extends ActionSupport{ ... }
結果註釋 - (動作譯註):
@ Results註解定義了一套動作的結果。
@Results({ @Result(name="success", value="/success.jsp"), @Result(name="error", value="/error.jsp") }) public class Employee extends ActionSupport{ ... }
註釋後(攔截註釋):
@After註解標誌着一個需要調用後的主要操作方法和執行結果的操作方法。返回值將被忽略。
public class Employee extends ActionSupport{ @After public void isValid() throws ValidationException { // validate model object, throw exception if failed } public String execute() { // perform secure action return SUCCESS; } }
註釋之前(攔截註釋):
@ Before註釋標記需要一個操作方法的主要操作方法之前被調用執行結果。返回值將被忽略。
public class Employee extends ActionSupport{ @Before public void isAuthorized() throws AuthenticationException { // authorize request, throw exception if failed } public String execute() { // perform secure action return SUCCESS; } }
BeforeResult註釋 - (攔截註釋):
@ BeforeResult註解標誌着一個結果之前需要執行的操作方法。返回值將被忽略。
public class Employee extends ActionSupport{ @BeforeResult public void isValid() throws ValidationException { // validate model object, throw exception if failed } public String execute() { // perform action return SUCCESS; } }
ConversionErrorFieldValidator註釋 - (驗證譯註):
此驗證註解如果有任何轉換錯誤進行了實地檢查,並適用於他們,如果他們存在。
public class Employee extends ActionSupport{ @ConversionErrorFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getName() { return name; } }
DateRangeFieldValidator註釋 - (驗證譯註):
這驗證註解檢查日期字段的值在指定範圍內。
public class Employee extends ActionSupport{ @DateRangeFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, min = "2005/01/01", max = "2005/12/31") public String getDOB() { return dob; } }
DoubleRangeFieldValidator註釋 - (驗證譯註):
此驗證註解檢查雙字段有一個值,該值在指定範圍內。如果既不最小或最大,什麼都不會做的。
public class Employee extends ActionSupport{ @DoubleRangeFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, minInclusive = "0.123", maxInclusive = "99.987") public String getIncome() { return income; } }
EmailValidator註釋 - (驗證譯註):
這驗證註解檢查一個字段是一個有效的E-mail地址,如果它包含一個非空的字符串。
public class Employee extends ActionSupport{ @EmailValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getEmail() { return email; } }
ExpressionValidator註釋 - (驗證譯註):
這種非字段級驗證驗證所提供的正則表達式。
@ExpressionValidator(message = "Default message", key = "i18n.key", shortCircuit = true, expression = "an OGNL expression" )
IntRangeFieldValidator註釋 - (驗證譯註):
這驗證註解檢查一個數字字段的值在指定的範圍內。如果既不最小或最大,什麼都不會做的。
public class Employee extends ActionSupport{ @IntRangeFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, min = "0", max = "42") public String getAge() { return age; } }
RegexFieldValidator 註釋 - (驗證譯註):
這個註解驗證一個字符串字段,使用正則表達式。
@RegexFieldValidator( key = "regex.field", expression = "yourregexp")
RequiredFieldValidator 註釋 - (驗證譯註):
這驗證註解檢查一個字段不爲空。標註必須被應用在方法層面。
public class Employee extends ActionSupport{ @RequiredFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getAge() { return age; } }
RequiredStringValidator註釋 - (驗證譯註):
這驗證註解檢查一個字符串字段不爲空(即非空,長度> 0)。
public class Employee extends ActionSupport{ @RequiredStringValidator(message = "Default message", key = "i18n.key", shortCircuit = true, trim = true) public String getName() { return name; } }
StringLengthFieldValidator註釋 - (驗證譯註):
這個驗證檢查字符串字段是合適的長度。假定該字段是一個字符串。如果設置既不是minLength 也不是最大長度,什麼都不會做。
public class Employee extends ActionSupport{ @StringLengthFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, trim = true, minLength = "5", maxLength = "12") public String getName() { return name; } }
UrlValidator註釋 - (驗證譯註):
這個驗證檢查一個字段是一個有效的URL。
public class Employee extends ActionSupport{ @UrlValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getURL() { return url; } }
驗證註釋 - (驗證譯註):
如果想使用多個相同類型的註釋,這些註釋必須嵌套在@Validations() 註釋。
public class Employee extends ActionSupport{ @Validations( requiredFields = {@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "customfield", message = "You must enter a value for field.")}, requiredStrings = {@RequiredStringValidator(type = ValidatorType.SIMPLE, fieldName = "stringisrequired", message = "You must enter a value for string.")} ) public String getName() { return name; } }
CustomValidator註釋 - (驗證譯註):
這個註解可以用於自定義驗證。使用ValidationParameter的註釋,以提供額外的 params.
@CustomValidator(type ="customValidatorName", fieldName = "myField")
轉換註釋 - (類型轉換註釋):
這是一個標記註釋類型轉換類型級別。轉換註釋必須應用在類型級別。
@Conversion() public class ConversionAction implements Action { }
CreateIfNull註釋 - (類型轉換註釋):
這個註解設置類型轉換CreateIfNull。必須應用在域或方法級CreateIfNull註解。
@CreateIfNull( value = true ) private List<User> users;
元素註釋 - (類型轉換註釋):
這個註解設置元素進行類型轉換。必須應用在字段域或方法級元素的註解。
@Element( value = com.acme.User ) private List<User> userList;
關鍵註釋 - (類型轉換註釋):
這個註解設置進行類型轉換的關鍵。必須應用在域或方法級的關鍵註解。
@Key( value = java.lang.Long.class ) private Map<Long, User> userMap;
KeyProperty註釋 - (類型轉換註釋):
這個註解設置類型轉換KeyProperty。必須應用在域或方法級KeyProperty註解。
@KeyProperty( value = "userName" ) protected List<User> users = null;
TypeConversion註釋 - (類型轉換註釋):
這個註解的註解是用於類和應用程序的轉換規則。註解可以應用於TypeConversion在屬性和方法的級別。
@TypeConversion(rule = ConversionRule.COLLECTION, converter = "java.util.String") public void setUsers( List users ) { this.users = users; }