strust2的学习笔录其四:Convention插件和“约定”支持

上一章:配置Struts2的异常处理http://www.cnblogs.com/suxi-blog/articles/6269880.html 

下一章;Struts2的国际化

1.Struts2引入Convention的插件支持零配置。插件可以完全可以抛弃配置信息,而是由Struts根据约定来自动配置。其中Convention有个重要的原则:约定优于配置。

2.开发者只需要将jar文件直接复制到WEB-INF\lib文件下。它会自动搜索位于action,struts,actions,struts2包下的所有的java类,Convention插件会把如下的两种java类文件当成Action处理:

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

(2).所有类名以Action结尾的Java类。

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

(1)struts.convention.exclude.packages:指定不扫描那些包下的java类

(2)struts.convention.package.locators:使用该常量指定的包作为搜索Action的根包

(3)struts.convention.action.packages:使用该常量指定的包为根包来搜索Action类,除开action,actions,struts,struts2四个包的类之外的第五个包。

(第二三中的方式十分相似,但可以根据自己的需求来做处理)

4.映射Action的name时,遵循如下两个规则:

(1)如果该Action类名包括Action的后缀,将该Action类名的Action后缀去掉,否则不做任何处理。

(2)将Action类名的驼峰写法(每个单词首字母大写,其他字母小写的写法)转成中划线写法(所有的字母小写,单词与单词之间以中划线隔开)。

5.按约定映射result

  Convention默认也作为逻辑视图和物理视图的映射提供了约定。默认情况下,指定在WEB-INF、content路径下,定位资源约定是:actionName+resultcode+suffix。当某个逻辑视图找不到对应的视图资源时,Convention会自动试图使用actionName+suffix作为物理视图资源。

在这里推荐一个Struts2的插件叫Config Browser,它可以清楚的看出Struts2应用下部署的那些Action,以及每个Action详细的映射信息。直接导入Struts-config-browser-plugin-2.3.16.3.jar就行。至于具体的用法请找一下度娘。

6.Action链的约定

如果希望一个Action处理后不是进入视图页面,而是进入另一个Action形成Action链,则是通过Convention插件只需遵守如下的三个约定即可。

(1)Action返回的逻辑视图字符串没有对应的视图资源。

(2)Action与第一个Action处于同一个包下

(3)Action映射的URL为:firstactionName+resultcode

7.自动重加载映射

Convention插件完全支持自动重新加载映射,只要为struts2应用配置如下两个常量即可(即可在web.xml文件中配置,也可在struts.xml或struts.properties文件中配置)

<!---配置Struts2对应处理开发者模式-->

<content name="struts.devMode" value="true">

<!--配置Content插件自动重新加载映射-->

<content name="struts.convention.classes.reload" value="true">

8.Convention插件主要致力于解决Action管理、Result管理等最常见、最琐碎的配置,将开发者从庞大而繁琐的struts.xml文件释放出来。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天就到这里,谢谢观看。

上一章:配置Struts2的异常处理http://www.cnblogs.com/suxi-blog/articles/6269880.html 

下一章;Struts2的国际化

posted @ 2017-01-10 20:13  freeflying  阅读(184)  评论(0编辑  收藏  举报