Convention插件与"约定"支持

Action的搜索和映射约定

(1)安装Convention插件:将Struts2项目下的struts2-convention-plugin-2.3.31.jar文件复制到Struts2应用的WEB-INF\lib路径下。
(2)Action的搜索:对于Convention插件而言,它会自动搜索位于action、actions、struts、struts2包下的所有Java类,Convention差价会把如下两种Java类当成Action处理:
①所有实现了com.opensymphony.xwork2.Action的Java类
②所有类名以Action结尾的Java类。
(3)Convention插件允许设置的三个常量:
struts.convention.exclude.packages:指定不扫描哪些包下的Java类,位于这些包结构下的Java类将不会被自动映射成Action。
struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action的根包。对于actions.slow.LoginAction类,按约定原本应映射到/slow/login;如果将该常量设定为slow,则该Action将会映射到/slow。
struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。Convention插件除了扫描action、actions、struts、struts2四个包的类之外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。
(4)部署Action时,action、actions、struts、struts2包会映射成根命名空间,而这些包下则被映射成对应的命名空间。如下:

csdn.slow.actions.LoginAction 映射到 /
//下面类实现了com.opensymphony.xwork2.Action接口
csdn.slow.actions.books.GetBooks 映射到 /books
csdn.slow.action.LoginAction 映射到 /
csdn.slow.struts.auction.bid.BidAction 映射到 /auction/bid
csdn.slow.struts.wage.hr.AddEmployeeAction 映射到 /wage/hr

(5)Action的name属性根据该Action的类名映射,映射Action的name时,遵循如下两步规则:
①如果该Action类名包含Action后缀,将该Action类名的Action后缀去掉。否则不做任何处理。例如:LoginAction=>login。
②将Action类名的驼峰写法转成中划线写法。(所有字母小写,单词与单词之间以中划线隔开)例如:GetBooks=>get-books,AddEmployeeAction=>add-employee。
③示例:

csdn.slow.actions.LoginAction 映射到 /login.action
//下面类实现了com.opensymphony.xwork2.Action接口
csdn.slow.actions.books.GetBooks 映射到 /books/get-books.action
csdn.slow.action.LoginAction 映射到 /login.action
csdn.slow.struts.auction.bid.BidAction 映射到 /auction/bid/bid.action
csdn.slow.struts.wage.hr.AddEmployeeAction 映射到 /wage/hr/add-employee.action

按约定映射Result

(1)Result的约定映射

Action的URL返回的逻辑视图名结果类型对应的物理视图
/loginsuccessDispather\WEB-INF\content\login-success.jsp
/loginsuccessDispather\WEB-INF\content\login-success.html
/loginsuccessDispather\WEB-INF\content\login.jsp
/loginsuccessDispather\WEB-INF\content\login.html
/slow/get-bookerrorFreeMarker\WEB-INF\content\slow\get-book-error.ftl
/slow/get-bookerrorFreeMarker\WEB-INF\content\slow\get-book.ftl
/slow/get-bookIuputVelocity\WEB-INF\content\slow\get-book-input.vm
/slow/getiuputVelocity\WEB-INF\content\slow\get-input.vm

(2)安装Config Browser插件:将Struts2项目下的struts2-config-browser-plugin-2.3.31.jar文件复制到Struts2应用的WEB-INF\lib路径下。
(3)访问Config Browser的首页(需要先重启Web):http://localhost:8080/Struts2_3_9_1/config-browser/actionNames.action
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
上面截图说明LoginAction和GetBooks映射成功。


Action链的约定

(1)Action链:一个Action处理结束后,没有进入视图页面,而是进行另一个Action。
(2)三个约定:
①第一个Action返回的逻辑视图字符串没有对应的视图资源。
②第二个Action与第一个Action处于同一包下。
③第二个Action映射的URL为:firstactionName+resultcode


自动重加载映射

<!-- 配置Convention插件自动重加载映射 -->
<constant name="struts.convention.classes.reload" value="true"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值