Struts 2 - 注解类型
Struts 2 应用程序可以使用 Java 5 注解作为 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 注解 - (拦截器注解)
@After 注解标记需要在主操作方法执行并执行结果后调用的操作方法。返回值将被忽略。
public class Employee extends ActionSupport{ @After public void isValid() throws ValidationException { // 验证模型对象,如果失败则抛出异常 } public String execute() { // 执行安全行动 return SUCCESS; } }
Before 注解 - (拦截器注解)
@Before 注解标记需要在主操作方法和结果执行之前调用的操作方法。返回值被忽略。
public class Employee extends ActionSupport{ @Before public void isAuthorized() throws AuthenticationException { // 授权请求,如果失败则抛出异常 } public String execute() { // 执行安全操作 return SUCCESS; } }
BeforeResult 注解 - (拦截器注解)
@BeforeResult 注解标记需要在结果之前执行的操作方法。返回值被忽略。
public class Employee extends ActionSupport{ @BeforeResult public void isValid() throws ValidationException { // 验证模型对象,如果失败则抛出异常 } public String execute() { // 执行动作 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 注解 - (验证注解)
此验证注解检查字段是否包含非空字符串,是否为有效的电子邮件地址。
public class Employee extends ActionSupport{ @EmailValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getEmail() { return email; } }
ExpressionValidator 注解 - (验证注解)
此非字段级验证器验证提供的正则表达式。
@ExpressionValidator(message = "默认消息", key = "i18n.key", shortCircuit = true, expression = "OGNL 表达式" )
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 和 maxLength,则不会执行任何操作。
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 注解提供其他参数。
@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 注解必须应用于字段或方法级别。
@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; }