Struts 2 應(yīng)用程序可以使用Java5注釋作為替代XML和Java屬性配置。這里是清單的不同的類(lèi)別有關(guān)的最重要的注解:
@ Namespace注釋允許在Action類(lèi)中,而不是基于零配置的約定動(dòng)作的命名空間的定義。
@Namespace("/content") public class Employee extends ActionSupport{ ... }
@ Result注解允許在Action類(lèi)中,而不是一個(gè)XML文件中定義的動(dòng)作結(jié)果。
@Result(name="success", value="/success.jsp") public class Employee extends ActionSupport{ ... }
@ Results注解定義了一套動(dòng)作的結(jié)果。
@Results({ @Result(name="success", value="/success.jsp"), @Result(name="error", value="/error.jsp") }) public class Employee extends ActionSupport{ ... }
@After注解標(biāo)志著一個(gè)需要調(diào)用后的主要操作方法和執(zhí)行結(jié)果的操作方法。返回值將被忽略。
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注釋標(biāo)記需要一個(gè)操作方法的主要操作方法之前被調(diào)用執(zhí)行結(jié)果。返回值將被忽略。
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注解標(biāo)志著一個(gè)結(jié)果之前需要執(zhí)行的操作方法。返回值將被忽略。
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; } }
此驗(yàn)證注解如果有任何轉(zhuǎn)換錯(cuò)誤進(jìn)行了實(shí)地檢查,并適用于他們,如果他們存在。
public class Employee extends ActionSupport{ @ConversionErrorFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getName() { return name; } }
這驗(yàn)證注解檢查日期字段的值在指定范圍內(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; } }
此驗(yàn)證注解檢查雙字段有一個(gè)值,該值在指定范圍內(nèi)。如果既不最小或最大,什么都不會(huì)做的。
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; } }
這驗(yàn)證注解檢查一個(gè)字段是一個(gè)有效的E-mail地址,如果它包含一個(gè)非空的字符串。
public class Employee extends ActionSupport{ @EmailValidator(message = 上一篇:<s:include>標(biāo)簽示例下一篇:Struts2和Hibernate集成