Struts2注解方式的路径访问

      新版本中的注解配置是要依赖一个struts2-convention-plugin-2.1.8.1.jar的包,而这个包会默认依次检索包名里含有struts,struts2,action,actions的包,然后它会对实现了Action接口以及类名以Action结尾的这些类,作为Action来进行处理。


它的映射规则是这样的,对于以Action结尾的的类,去掉Action,取剩下的部分,将所有的字母转换为小写,如果有驼峰式的写法,则用"-"连接符来连接不同的单词,这是此插件的默认方式。最终转换之后的就是请求地址,下面看一个例子说明:

com.yirong.user.UserAction 这个类按照上面的规则,那么它的请求地址就应该是去掉后面的Action,前面的User全部转换成小写,那么最后的结果就是 /user.action


但我们平时一般还有命名空间的问题,在这里面是如果你的包名里面在struts,sturts2,action,action2的后面还有其它的话,那么后面的部分就默认为命名空间,还是看例子:

com.yirong.action.other.UserAction  按上面所说的那么这个最终的请求地址就为:/other/user.action

 

我们还经常使用驼峰命名法,而它的默认解析规则为用"-"连接符来连接不同的单词,如:

com.yirong.action.UserManagerAction 这个请求地址就为:/user-manager.action

 

还有一种情况,如果你的包名里同时含有多个关键字,那么默认将按照我上面写的顺序来解析,还是来看例子:

com.yirong.struts.action.UserAction 这个里面就同时包含struts与action而默认struts的优先级高那么后面的action就作为普通的字符(默认也就是命名空间)来处理,所以请求地址就为:/action/user.action,而如果是:

com.yirong.action.struts.UserAction  (因为struts的优先级高)最终的结果就为:/user.action

 

那么如果我们不想按照它默认的这几种关键字来检索呢?有办法,那就是通过struts.xml的常量配置来修改它检索的关键字:

<constant name="struts.convention.package.locators" value="yirong" />

这样就让它默认的检索为包名里是否含有yirong来判定action了

转载于:https://my.oschina.net/u/1163293/blog/173167

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值