Struts2的Convention插件的作用:
在Struts2中的/lib/struts2-convention-plugin-x.x.xx.x.jar
Convention插件会自动搜索位于action,actions,struts,struts2包下的所有类,即它会把如下两种的Java类当初Action处理:
所有实现了com.opensymphony.xwork2.Action的Java类
所有类名为Action结尾的Java类
例如:
com.app.action.LoginAction
com.app.actions.MenuAction
com.app.struts.LoginAction
com.app.struts2.MenuAction
Conventions插件允许设置如下三个常量:
struts.convention.exclude.packages:指定不扫描那些包下的Java类,位于这些包结构下的Java类将不会被自动映射为Action
struts.convention.package.locators:Convention插件使用该变量指定的包作为搜索Action的根包。对于actions.manager.LoginAction
类,按照约定原本会映射成/manager/login;如果将该常量设置为“manager”,则该Action将会映射到/login。
struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。Convention插件除了扫描action,actions
struts,struts2四个包中的类外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。
Convention映射举例如:
com.app.action.LoginAction 映射到/
com.app.struts.LoginAction 映射到/
com.app.actions.books.PayAction 映射到/books
com.app.struts.books.buy.PayAction 映射到/books/buy