struts2 convention插件与"约定"支持

转载 2012年03月28日 18:36:59

从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。

如何使用Convention

1.       将struts-Convention-plugin-2.1.6.jar文件复制到WEB-INF/lib路径下

 

2.       对于Convention插件而言,它会自动搜索位于action,actions,struts,struts2包下的所有java类,Convention插件会把如下两种java类当成Action处理:

1)  所有实现了com.opensymphony.xwork2.Action的java类

2)  所有类名以Action结尾的java类

 

3.       Convention插件还允许设置如下三个常量:

1)  struts.Convention.exclude.packges:指定不扫描哪些包下的java类,位于这些包结构下的java类将不会自动映射成Action;

2)  struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action的根包。对于actions.fore.LoginAction类,按约定原本应映射到/fore/login;如果将该常量设为fore,则该Action将会映射到/login

3)  struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。Convention插件除了扫描action,actions,struts,struts2四个包的类以外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。

注意:struts.convention.package.locators和struts.convention.action.packages两个常量的作用比较微妙,开发者在利用这两个常量时务必小心。

如:下面Action所在包被映射的命名空间如下:

com.fun.actions.LoginAction映射到   /

com.fun.actions.myoffice.CarInfoAction映射到 /myoffice

com.fun.struts.myoffice.EntINfoAction映射到 /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

 

5.       默认情况下。Convention总会到WEB应用的WEB-INF/content路径下定位物理资源,定位资源的约定是:actionRUL+resultCODE+suffix。当某个逻辑视图找不到对应的试图资源时,Convention会自动视图使用ActionURL+suffix作为物理视图资源。

      如:actions.fore.LoginAction 返回success字符串时,Convention优先考虑使用WEB-INF/content/fore目录下的login-success.jsp作为视图资源。如果找不到该文件,login.jsp也可作为对应的试图资源。如果返回input字符串,Convention会将WEB-INF/content/fore里面查找login-input.jsp

 

6.       为了看到struts2应用里的Action等各种资源的影射情况,struts2提供了ConfigBrowser插件。使用方法,将struts2-config-browser-plugin-2.1.6.jar文件复制到struts2应用的WEB-INF\lib目录中。

打开首页地址:http://localhost:8080/应用名字/config-browser/actionNames.action这里可以看到Config Browser插件的首页。

注意:这里不管开发者是否使用struts.xml文件进行配置,一样可以看到struts的配置信息。


Struts2的convention插件,在步骤中使用Action注解跳转到其他jsp页面

Struts2的convention插件,在方法中使用Action注解跳转到其他jsp页面   我们都清楚使用convention插件可以是struts2为零配置,默认情况下convention...
  • flsmgf
  • flsmgf
  • 2016年05月26日 01:31
  • 1404

使用struts2.5版本遇到的问题

我的环境         Eclipse JavaEE |1.8JDK |Tomcat8.0| 动态web项目3.1| struts2.5.2     struts相关包         我使用的是s...
  • en_reading
  • en_reading
  • 2016年09月08日 08:28
  • 11225

Struts2开始使用convention-plugin实现零配置

转至@http://javeye.iteye.com/blog/358744 最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codeb...
  • jamesssemaj
  • jamesssemaj
  • 2016年03月31日 18:13
  • 1114

struts2学习之---Convention插件与"约定"支持

struts2引入了Convention插件来支持零配置,不仅不需要使用srtuts.xml文件进行配置,甚至不需要使用Annotation进行配置。”约定优于配置” 1.Action的搜索和映射约定...
  • StrongHYQ
  • StrongHYQ
  • 2017年07月05日 11:06
  • 259

struts2 convention插件与"约定"支持

从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该...
  • suyi_8902
  • suyi_8902
  • 2013年09月03日 19:48
  • 530

struts2 convention插件与"约定"支持

从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该...
  • q3498233
  • q3498233
  • 2011年12月08日 10:56
  • 2673

Struts2插件convention

  • 2014年09月24日 09:06
  • 300KB
  • 下载

如何使用struts2的零配置插件convention

  • 2017年10月18日 15:34
  • 144KB
  • 下载

struts 2读书笔记-----Convention插件与“约定”支持

Convention插件的主要特点是“约定优于配置”。              Action的搜索和映射约定            为了能够使用Convention插件,必须在Struts 2...
  • chenssy
  • chenssy
  • 2012年02月20日 22:51
  • 4201

struts2 中,使用了 Rest与Convention插件后,访问 动态方法 的注意点

以前使用struts2  的 2.3.4 版本,做的一个项目,使用了stuts2的 Rest与Convention插件,然后动态访问某个action中的方法时,都是使用 “!” 去进行指定的,如   ...
  • rainbow702
  • rainbow702
  • 2016年01月14日 17:55
  • 211
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2 convention插件与"约定"支持
举报原因:
原因补充:

(最多只允许输入30个字)