Struts2 annotation之action注解

1.如果一个符合规则的Action类(类名以Action结尾或继承了ActionSupport类)没有一个名为execute的方法
(可以继承自ActionSupport类),则该类不会被识别为Action类,即使它有其他的返回String的公共方法,可以在该类上或该类中的任何公共方法(即使返回类型不是String)上标注@Action注解(可以标注在任何方法上),使其重新变回一个可用(可访问)的Action类。

2.注意,标注该注解的位置不同会产生不同的结果:
  • 标注在类上,因为没有execute方法,直接访问该action会报错:java.lang.NoSuchMethodException: actions.Test3Action.execute()只能通过指定方法名的方式来访问。如:某方法名是test,则可以以actionName!test.action的方式访问。
  • 标注在公共(一定要public的,其他方法将被忽略)方法上(可以是一个无返回值的void类型的,但这就意味着你无法设置一个result以及location来指定跳转的目的地)。
3.因此action方法并不强求返回值类型,但至少应该是String或void类型的。事实上,返回void的action方法仅可用于不要求返回值的ajax方法或直接使用HttpServletResponse返回数据流。

4.标注在某个方法上,就意味着该方法变成该action类的默认访问方法,即替换了默认的execute方法。其它方法则仍以指定方法名的方式访问。

EOF.
小插曲:忽然发现每次切换action路径访问时会重复执行一次新输入的action,很是疑惑,开始以为是程序的问题,多次测试后发现重复执行是在我输入地址栏后回车的一刹那,放慢输入后才发现是回车提交之前就已经访问到新的地址,原来是新版chrome惹的祸(我使用版本:18.0.1025.162 m),参见: http://sina.lt/cxe
本文没有讲述action相关注解的具体使用,参见: http://sina.lt/cxf
有关struts2-config-browser-plugin插件的使用参见: http://sina.lt/cxg
关于拦截器注解的使用参见: http://sina.lt/cxh
以及下方列出的链接:(本文链接均使用 http://sina.lt/缩短)

struts2 @ResultPath

http://sina.lt/cxj ,http://sina.lt/cxk

struts2 @Inject

http://sina.lt/cxm

struts2 @SkipValidation

http://sina.lt/cxn

转载于:https://my.oschina.net/cwalet/blog/56164

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值