Convention插件与“约定”支持

主要用于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的配置。
 
   
原文地址:https://www.cnblogs.com/goingforward/p/5729908.html