Struts2注释

花了两天时间在这个注释上面,不得不说一句话尽信书不如不信。起因是书上关于注释的例子不能实现,不能这么放过去于是求度娘。找的一个成功例子:点击打开链接感谢作者,冒昧在这里引用下。不过事情不能这么算了,比对书上的例子。感觉注释作用对象有要求。于是做了一下实验,在struts.xml文件配置的情况下,在action和test包写了Test类和TestAction类,发现只有action包里Test类只有继承ActionSupport注释才有作用,TestAction类不需要继承注释也有作用。忽然觉得这个应该和action有关,又求一边度娘。在cdsn博客上找到一篇文章介绍这个

Struts2约定(了解)
1 什么是约定

使用约定可以连注解都不写,是真正的零配置,但是它的能力有限,所以这种方式不可取的。
l Struts2会对Action的命名,以及Action的包名都有限制;
l Struts2会对结果页面的存放路径,以及结果页面的名称也都有限制。
  使用约定与使用注解一样,也要导包:struts2-convention-plugin-2.3.15.jar
1 约定对Action的限制

约定Action类名:
要求Action的命名必须以“Action”为后缀,例如:UserAction、BookAction等等。可以使用下面常量来修改后缀限制:
<constant name="struts.convention.action.suffix" value="Action"/>
约定Action包名:
要求Action必须放到action、actions、struts、struts2包中。例如:cn.itcast.action、cn.itcast.sturts、cn.itcast.action.user等等。可以使用下面常量来修改Actoin的包
<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/>
3 通过Action的限制得到访问路径

上面已经知道约定对Action的限制,现在通过Action的包名和类名得到它的访问路径
例如:cn.itcast.action.UserAction,它的访问路径为/user.action
例如:cn.itcast.action.user.UserAction,它的访问路径为/user/user.action。因为在约定包action后面还有一层包user,那么这一层就是名称空间了。
例如:com.action.cn.itcast.user.UserAction,它的访问路径为/cn/itcast/user/user.action。
例如:cn.itcast.action.user.UserListAction, 它的访问路径为/user/user-list.action。当Action名称由多个单词构成,那么在访问路径中使用“-”来连接多个单词。
4 通过Action的限制得到结果页面路径

Struts2约定限制结果页面必须放到/WEB-INF/content/目录中,可以通过下面常量来修改这个限制。
<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>
当cn.itcast.action.UserAction返回结果为success时,Struts会依次查找如下结果页面:
l /WEB-INF/content/user-success.jsp;
l /WEB-INF/content/user-success.html;
l /WEB-INF/content/user.jsp
当cn.itcast.action.user.UserListAction返回的结果为error时,Struts会依次查找如下结果页面:
l /WEB-INF/content/user/user-list-error.jsp;
l /WEB-INF/content/user/user-list-error.html;
l /WEB-INF/content/user/user-list.jsp。

原文链接感谢原作者,在这里板砖引用。

又是一篇水文,接下来好好学习拦截器加油

——————————————————————————————————————————————————————

加点自己的理解:只要是类名类似XXXAction并且在XX.action下面一定会被Struts2识别并且访问路径是/XXX(小写),这个时候再类里面加注释可以达到效果。除此之外的action只能依靠struts.xml文件添加才有效。而且struts.xml文件可以添加多个action,这些action的class的值可以是上述类。

还有一点,就我现在而言在web.xml文件里添加

<init-param>
  	<!-- 配置Struts2框架默认加载的Action包结构,可以没有。 -->
  	<param-name>actionPackages</param-name>  
    <param-value>chapter8,test</param-value>
    </init-param>
并没有什么用。

总感觉这些东西很简单,一下子就能掌握容易搞懂。还是要加油!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值