Struts2 注釋類型

2018-12-26 07:19 更新

Struts2 應用程序可以使用Java5注釋來替代XML和Java屬性的配置。以下是與不同類別相關(guān)的最重要注釋的列表:

Namespace注釋(Action注釋)

@Namespace注釋允許在Action類中定義Action的命名空間,而不是基于零配置的約定。

@Namespace("/content")
public class Employee extends ActionSupport{
  ...
}

Result注釋(Action注釋)

@Result注釋允許在Action類中定義Action的結(jié)果,而不是XML文件。

@Result(name="success", value="/success.jsp")
public class Employee extends ActionSupport{
 ...
}

Results注釋(Action注釋)

@Results注釋定義了一個Action的一組結(jié)果。

@Results({
   @Result(name="success", value="/success.jsp"),
   @Result(name="error", value="/error.jsp")
})
public class Employee extends ActionSupport{
 ...
}

After注釋(攔截器注釋)

@After注釋標記需要在執(zhí)行主action方法和結(jié)果后調(diào)用的action方法(忽略返回值)。

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注釋(攔截器注釋)

@Before注釋標記需要在執(zhí)行主action方法和結(jié)果之前調(diào)用的action方法(忽略返回值)。

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注釋標記需要在結(jié)果之前執(zhí)行的action方法(忽略返回值)。

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注釋(驗證注釋)

此驗證注釋檢查字段是否存在任何轉(zhuǎn)換錯誤,并在存在時應用。

public class Employee extends ActionSupport{
   @ConversionErrorFieldValidator(message = "Default message", 
                        key = "i18n.key", shortCircuit = true)
   public String getName() {
       return name;
   }
}

DateRangeFieldValidator注釋(驗證注釋)

此驗證注釋檢查日期字段的值是否在指定范圍內(nèi)。

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注釋(驗證注釋)

此驗證注釋檢查具有指定范圍內(nèi)值的雙字段。如果既不設(shè)置min也不設(shè)置max,則不會執(zhí)行任何操作。

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注釋(驗證注釋)

如果該字段包含非空字符串,則該驗證注釋將檢查該字段是否為有效的電子郵件地址。

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注釋(驗證注釋)

此驗證注釋檢查數(shù)字字段是否具有指定范圍內(nèi)的值。如果既不設(shè)置min也不設(shè)置max,則不會執(zhí)行任何操作。

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注釋(驗證注釋)

此驗證注釋檢查String字段不為空(即非null,長度大于0)。

public class Employee extends ActionSupport{

   @RequiredStringValidator(message = "Default message", 
   key = "i18n.key", shortCircuit = true, trim = true)
   public String getName() {
       return name;
   }
}

StringLengthFieldValidator注釋(驗證注釋)

此驗證器檢查字符串字段是否具有正確的長度,它假定該字段是一個字符串。如果既沒有設(shè)置minLength也沒有設(shè)置maxLength,則不會執(zhí)行任何操作。

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注釋(驗證注釋)

如果要使用多個相同類型的注釋,這些注釋必須嵌套在@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注釋提供其他參數(shù)。

@CustomValidator(type ="customValidatorName", fieldName = "myField")

Conversion注釋(類型轉(zhuǎn)換注釋)

這是類型級別的類型轉(zhuǎn)換的標記注釋。轉(zhuǎn)換注釋必須在類型級別應用。

@Conversion()
   public class ConversionAction implements Action {
}

CreateIfNull注釋(類型轉(zhuǎn)換注釋)

此注釋為類型轉(zhuǎn)換設(shè)置CreateIfNull。CreateIfNull注釋必須在字段或方法級別應用。

@CreateIfNull( value = true )
private List<User> users;

Element注釋(類型轉(zhuǎn)換注釋)

此注釋設(shè)置類型轉(zhuǎn)換的元素。Element注釋必須在字段或方法級別應用。

@Element( value = com.acme.User )
private List<User> userList;

Key注釋(類型轉(zhuǎn)換注釋)

此注釋設(shè)置類型轉(zhuǎn)換的key。Key注釋必須在字段或方法級別應用。

@Key( value = java.lang.Long.class )
private Map<Long, User> userMap;

KeyProperty注釋(類型轉(zhuǎn)換注釋)

此注釋設(shè)置類型轉(zhuǎn)換的KeyProperty。KeyProperty注釋必須在字段或方法級別應用。

@KeyProperty( value = "userName" )
protected List<User> users = null;

TypeConversion注釋(類型轉(zhuǎn)換注釋)

此注釋用于類和應用程序范圍的轉(zhuǎn)換規(guī)則。TypeConversion注釋可以在屬性和方法級別應用。

@TypeConversion(rule = ConversionRule.COLLECTION, 
converter = "java.util.String")
public void setUsers( List users ) {
   this.users = users;
}



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號