主要用于Action映射和Result映射
struts2-convention-plugin-2.3.16.3.jar
会将 |--实现了com.opensymphony.xwork2.Action的Java类
|--类名以Action结尾的Java类
作为Action
Convention插件允许设置如下三个常量:
struts.convention.exclude.packages 不扫描哪些包
struts.convention.package.locators 指定扫描的根包
struts.convention.action.packages 根包
Action映射规则:
部署Action时,actions、action、struts、struts2包会映射为根命名空间。
1)如果Action类名包含Action后缀,则去掉。(LoginAction->login.action)
2)将Action类名的驼峰写法转成中划线写法(GetBooks->get-books.action)
映射result:
默认情况下到web应用的WEB-INF/content下定位物理资源,约定为:
actionName + resultCode + suffix(当某个逻辑资源找不到对应视图资源时,convention会自动试图使用actionName + suffix作为视图资源)
(如:com.wj.app.action.user.LoginAction返回success时Convention会优先考虑使用WEB-INFcontentuser下的login-success.jsp作为视图资源,如果找不到,login.jsp也可以作为对应视图资源)
Config Browser插件可以查看action映射信息
Action链
如果希望action处理结束后是进入另一个action,只需遵守下面三个约定:
1)第一个Action返回的逻辑视图字符串没有对应视图资源。
2)第二个Action与第一个Action处于同一个包下。
3)第二个Action映射的URL为:firstactionName + resultcode
自动重新加载映射:
<constant name="struts.devMode" value="true">
<constant name="struts.convention.classes.reload" value="true">
Convention插件相关Annotation还允许使用注解管理Action和Result的配置。