JavaEE复习笔记(8)——Struts:Convention插件和约定
来源:互联网 发布:淘宝助理创建宝贝模板 编辑:程序博客网 时间:2024/06/07 19:56
1、从Struts2.1开始,Struts2引入了Convention插件来支持零配置。插件完全可以抛弃配置信息,不仅不需要struts.xml文件进行配置,甚至不需要使用Annotation进行配置。而是由Struts2根据约定来自动配置。
2、Convention插件的主要特点是:约定优于配置。
3、为了使用Convention插件,必须在Struts2应用中安装Convention插件,开发者只需要将Struts2项目下的struts2-convention-plugin-2.2.1.jar文件复制到Struts2应用的WEB-INF\lib路径下即可。
4、对于Convention而言,它会自动搜索位于action、actions、struts、struts2包下的所有Java类,Convention插件会把如下两种Java类当成Action处理:
·所有实现了com.opensymphony.xwork2.Action的Java类。
·所有类名以Action结尾的Java类。
5、Convention插件允许设置以下3个常量:
·struts.convention.exclude.packages:指定不扫描那些包下的Java类,位于这些包结构下的Java类将不会被自动映射成Action。
·struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action的根包。例如:对于actions.lee.LoginAction类,按约定原本应该映射到/lee/login;如果将该常量设为lee,则该Action将会映射到/login。
·struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。Convention插件除了扫描action、actions、struts、struts2四个包的类之外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。
6、找到合适的Action类之后,Convention插件会按约定部署这些Action,部署Action时,action、actions、struts、struts2包会映射成根命名空间,而这些包下的子包则被映射成对应的命名空间。
7、Convention插件里所有Action所在package的父package默认是conventionDefault。
8、Action的name属性根据Action的类名映射,映射Action的name时,遵循如下两步规则:
·如果该Action包含Action后缀,则将该Action类名的Action后缀去掉。否则不作任何处理。
·将Action类名的驼峰写法转成中划线写法(所有字母小写,单词与单词之间以中划线隔开)。
9、默认情况下,Convention总会到Web应用的WEB-INF/content/<action映射路径>路径下定位物理资源,定位资源的约定是:actionName+resultcode+suffix。
10、当某个逻辑视图找不到对应的物理视图资源时,Convention会试图使用actionName +suffix作为物理视图资源。
11、Struts2提供了Config Browser插件,使用该插件可以清楚地看出Struts2应用下部署了哪些Action以及每个Action的信息,便于开发者调试。
12、安装Config Browser插件非常简单,将Struts2项目的lib目录下的struts2-config-browser-plugin-2.2.1.jar文件复制到Struts2应用的WEB-INF/lib目录下,重启该Web应用即可。
13、Config Browser 插件的首页地址为:Web_Context/config-browser/index.action。
14、如果希望一个Action处理结束后不是进入视图页面,而是进行另一个Action形成Action链,此时Convention插件只需遵守如下三个约定即可:
·第一个Action返回的逻辑视图字符串没有对应的视图资源。
·第二个Action与第一个Action处于同一包下。
·第二个Action的映射URL为:firstactionName+resultcode.
15、在struts2中配置常量来使Convention自动加载映射(既可以在web.xml文件中配置,也可在struts.xml或struts.properties文件中配置):
<!-- 配置Struts2应用处于开发模式 -->
<constant name=”struts.devMode” value=”true”/>
<!-- 配置Convention插件自动加载映射 -->
<constant name=”struts.convention.classes.reload”
value=”true” />
16、Convention插件主要致力于解决Action管理、Result管理等最常见、也最琐碎的配置。将开发真从庞大而繁琐的struts.xml文件中释放出来,而并不是完全舍弃struts.xml文件。
17、Convention插件Annotation来管理拦截器,异常管理等相关配置。
- JavaEE复习笔记(8)——Struts:Convention插件和约定
- JavaEE复习笔记(6)——Struts:Action
- JavaEE复习笔记(7)——Struts:异常处理
- JavaEE复习笔记(9)——Struts:国际化
- JavaEE复习笔记(5)——Struts:MVC思想和Struts2的配置
- JavaEE struts2的convention插件
- struts Convention 插件
- JavaEE复习笔记(2)——JSP
- 简介和约定
- 数据词典和约定
- JavaEE复习笔记(3)——Servlet相关技术
- JavaEE复习笔记(1)——JavaEE应用和开发环境
- JavaEE复习笔记
- int的范围和约定
- Convention 插件(2)—— Annotation
- struts之插件convention的使用简介。
- c语言编程规范和约定
- JavaEE复习笔记(4)——JSP2和Servlet3.0的新特性
- 50道Java线程面试题
- 32STL之Set和multiset容器
- BZOJ 2339: [HNOI2011]卡农
- 剑指offer——数组中出现次数超过一半的数字(不错,2 ways)
- 如何选择合适的语言
- JavaEE复习笔记(8)——Struts:Convention插件和约定
- 华为手机6.0系统系列崩溃,情况未明
- Matlab将多个柱形图放于一个图中
- docker 的基本命令
- JS中的形参与实参
- Linux学习之文件处理命令(二)目录处理命令 && 文件处理命令
- FullCalender的配置和使用
- opencv中霍夫变换cv::HoughLinesP函数的使用方法和形参说明
- DTW