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;
}