Convention插件
作用:
Cconvention意为“约定”,借鉴了Rails的“约定优于配置”原则,使用convention后可以抛弃配置信息,只要按照约定开发Action即可,实现零配置
使用方法:
将stuts2-convention-plugin-xxx.jar文件导入到应用下的WEB-INF/lib路径即可(若出现错误,则还需导入asm-xxx.jar文件)

映射约定:
-
Action:
Convention会自动搜索位于action、actions、struts、struts2包下的所有java类,并将所有实现了com.opensymphony.xwork2.Action的java类或所有类名以Action结尾的java类当成Action处理
(等同于配置acton的class属性)
-
url(请求)与Action的映射:
对应Action的name属性,若Action类包含Action后缀,将该后缀去掉,并且将该类名的驼峰写法改为中划线写法,得到的则为对应的url
eg:
com.action.user.LoginAction 映射到 /user/login
con.struts2.wage.AddUserActoon 映射到 /add-user
(等同于配置<action.../>的的name属性)
-
result(结果)与Action的映射:
Convention默认会到WEB-INF/content路径下按 actionName + resultcode + suffix 定位物理资源,因此将物理视图资源放于WEB-INF/content中
eg:
com.action.user.LoginAction 返回SUCCESS字符串时,Convention会优先寻找WEB-INF/content/user下的login-success.jsp作为视图资源
(等同于配置action的<result.../>元素)
-
action与action的映射:
实现Action处理结束后不是进入视图页面,而是进行另一个Action形成Action链,则约定如下:
-
第一个Action返回的字符串没有对应视图资源
-
第二个Action与第一个Action处于同一个包下
-
第二个Action映射的URL为:firstactionName + resultcode
eg:
设置第一个action类名为FirstAction,且返回“second”字符串,且content下没有first-second.jsp或first.jsp,再将第二个action类名设为FirstSecondAction,则完成映射
-
零配置:
Convention插件主要在于解决Action、Result的配置,使得以往要通过struts.xml的配置变得简便,但struts.xml仍然需要用来配置各种Bean配置、拦截配置等
此外,Convention还使用Annotation来管理拦截器、异常处理等信息的配置
Config Browser插件:
用于查看Struts2应用下部署了哪些Action,以及每个Action详细的映射信息
在WEB-INF/lib导入struts2-cofig-browser-plugin-xxx.jar即可使用
启动应用后,输入localhost:8080/config-browser/actionNames.action或localhost:8080/WEB应用名/config-browser/actionNames.action即可看到

网友评论