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

Struts2 注释类型的更多相关文章

  1. Struts2初学 struts2自定义类型转换器

    一.问题的引出      Struts2的类型转换是基于OGNL表达式的,由于请求的参数都是字符串,而JAVA 本身属于强类型的的语言,这样就需要把请求参数字符串转换成其他类型.     Struts ...

  2. struts2学习笔记之十一:struts2的类型转换器

    Struts2的类型转换器   如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString   注 ...

  3. struts2结果类型

    struts2结果类型: 结果类型 描述 前request域属性是否丢失 1 dispatcher 用于与jsp整合的结果类型.默认结果类型. 2 chain Action链式处理结果类型.前一个Ac ...

  4. struts2自定义类型转换器

    首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机 ...

  5. Struts2的类型转换器

    Struts2的类型转换器 如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString 注册类型转 ...

  6. struts2 自定义类型转化 第三弹

    1.Struts2的类型转化,对于8种原生数据类型以及Date,String等常见类型,Struts2可以使用内建的类型转化器实现自动转化:但对于自定义的对象类型来说,就需要我们自己指定类型转化的的方 ...

  7. 注释类型 XmlType

    @Retention(value=RUNTIME) @Target(value=TYPE) public @interface XmlType 将类或枚举类型映射到 XML 模式类型. 用法 @Xml ...

  8. [JavaWeb基础] 013.Struts2 自定义类型转换器

    很多时候,我们在做web开发的时候经常要用到时间的转换器,Struts2给我们提供了一种类型转换器的接口.下面我们讲讲怎么实现吧. 1.首先我们要定义一个类型转换的类,继承自com.babybus.s ...

  9. 4.Struts2转向类型详解

    struts2中提供了多种视图转向类型,类型由type属性指定,如: dispatcher:请求转发(默认值) redirect:重定向到页面 redirectAction:重定向到Action pl ...

随机推荐

  1. Java练习 SDUT-2499_数字

    数字 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义f(x) = {比x小,不可以被x整除并且不和x互质的数的个数 ...

  2. JavaScript 验证API

    约束验证 DOM 方法 Property Description checkValidity() 如果 input 元素中的数据是合法的返回 true,否则返回 false. setCustomVal ...

  3. @loj - 2483@「CEOI2017」Building Bridges

    目录 @desription@ @solution@ @accepted code@ @details@ @another solution@ @another code@ @desription@ ...

  4. 【[Offer收割]编程练习赛9 D】 矩阵填数

    [题目链接]:http://hihocoder.com/problemset/problem/1480 [题意] [题解] 这是一道杨氏矩阵的题; 一个固定形状的杨氏矩阵的种类个数; 等于这个杨氏矩阵 ...

  5. 4 文件操作 支持图片 视频 mp3 文本等

    #文件操作:send_file,支持图片 视频 mp3 文本等@app.route("/img")def img(): return send_file("1.jpg&q ...

  6. [kuangbin带你飞]专题九 连通图E POJ 3177 Redundant Paths

    这个题最开始我想的是,直接缩点求双连通分量,连接这些双联通分量不就行了吗? 但是其实是不对的,双连通内部双联通,我们如果任意的连接一条边在这些双联通分量之间,他们之间有没有桥其实并不知道. 我应该是求 ...

  7. MVC插件式开发平台

    ---恢复内容开始--- 经过DyOS.BraveOS1.0再到BraveOS2.0,系统现在已经开发了下载. 我们的目标是,网页版操作系统,可以在线安装更新软件,并提供二次开发平台,提供基础的逻辑和 ...

  8. iptables一个包过滤防火墙实例

    环境:redhat9 加载了string time等模块 eth0 接外网──ppp0 eth1 接内网──192.168.0.0/24 #!/bin/sh # modprobe ipt_MASQUE ...

  9. php页面最大执行时间 set_time_limit函数不起作用

      作者: default|标签:PHP set_time_limit 执行时间|2017-3-21 15:03   set_time_limit 不生效或者无效解决方法 <?php globa ...

  10. 前后端结合的 WAF

    前言 之前介绍了一些前后端结合的中间人攻击方案.由于 Web 程序的特殊性,前端脚本的参与能大幅弥补后端的不足,从而达到传统难以实现的效果. 攻防本为一体,既然能用于攻击,类似的思路同样也可用于防御. ...