2024年4月17日发(作者:)
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使
用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该
插件完全抛弃配置信息,不仅不需要是使用文件进行配置,甚至不需要使用
Annotation进行配置,而是由struts2根据约定自动配置。
如何使用Convention
1. 将文件复制到WEB-INF/lib路径下
2. 对于Convention插件而言,它会自动搜索位于action,actions,struts,
struts2包下的所有java类,Convention插件会把如下两种java类当成Action处理:
1) 所有实现了的java类
2) 所有类名以Action结尾的java类
3. Convention插件还允许设置如下三个常量:
1) s:指定不扫描哪些包下的java类,位于这些
包结构下的java类将不会自动映射成Action;
2) rs:Convention插件使用该常量指定的包作
为搜寻Action的根包。对于ction类,按约定原本应映射到
/fore/login;如果将该常量设为fore,则该Action将会映射到/login
3) es:Convention插件以该常量指定包作为根包
来搜索Action类。Convention插件除了扫描action,actions,struts,struts2四个包的类
以外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。
注意:rs和es
两个常量的作用比较微妙,开发者在利用这两个常量时务必小心。
如:下面Action所在包被映射的命名空间如下:
ction 映射到 /
oAction 映射到 /myoffice
oAction 映射到 /myofiice
4. 映射Action的name时,遵循如下两步规则:
1) 如果该Action类名包含Action后缀,将该Action类名的Action后缀去掉。
否则不做任何处理。
2) 将Action类名的驼峰写法(每个单词首字母大写、其他字母小写的写法)转成
中画线写法(所有字母小写,单词与单词之间以中画线隔开)
如:LoginAction映射的Acion的name属性为login,GetBooks映射的Action的
name的属性为get-books,AddEmployeeAction映射的Action的name属性为
add-employee


发布评论