STRUTS2 Convention 插件:零配置详解
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
"STRUTS2零配置" Struts2是一个流行的Java Web开发框架,它提供了强大的MVC(模型-视图-控制器)架构支持。在Struts2的早期版本中,开发者需要通过XML配置文件(如struts.xml)来定义Action类、结果页面和其他相关配置。然而,从Struts2.1版本开始,为了简化开发流程,引入了"零配置"的概念,即无需手动编写XML配置文件,而是采用自动配置的方式,这主要得益于Convention插件。 Convention插件是Struts2的一个核心组件,它的主要目标是减少甚至消除对XML配置的依赖。它通过观察和解析应用中的类和包命名规则,自动生成Action和Action映射。这极大地提高了开发效率,因为开发者可以专注于编写业务逻辑,而不是繁琐的配置。 使用Convention插件的步骤如下: 1. 首先,需要将`struts-Convention-plugin-2.1.6.jar`文件添加到项目的`WEB-INF/lib`目录下,确保插件能被应用服务器识别并加载。 2. Convention插件会自动扫描特定包下的Java类,通常包括`action`,`actions`,`struts`,`struts2`等默认包。它会识别两种类型的Java类作为Action: - 实现了`com.opensymphony.xwork2.Action`接口的类。 - 类名以`Action`结尾的类。 3. 开发者可以通过设置以下系统常量来定制Convention插件的行为: - `struts.Convention.exclude.packages`: 用于指定不希望被扫描的包,避免某些不相关的类被误识别为Action。 - `struts.convention.package.locators`: 设定Action的根包位置。例如,如果设置为`fore`,那么类`actions.fore.LoginAction`原本会被映射到`/fore/login`,现在则会映射到`/login`。 - `struts.convention.action.packages`: 这个常量用于指定额外的包,让Convention插件扫描这些包以查找Action类。这允许开发者在除默认包之外的其他自定义包中定义Action。 需要注意的是,`struts.convention.package.locators`和`struts.convention.action.packages`这两个常量的设定可能会影响到Action的映射路径,开发者需要谨慎使用以避免潜在的问题。 Struts2的零配置特性通过Convention插件实现了更加灵活和高效的开发模式。开发者可以根据约定来组织代码,使得框架能够自动解析并创建Action及其相应的请求映射,从而降低了项目维护的复杂性,提升了开发效率。尽管如此,理解并合理使用这些配置常量仍然是实现良好应用架构的关键。
![](https://csdnimg.cn/release/download_crawler_static/4034448/bg5.jpg)
剩余22页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/e9ffc3fb22bf44acbb7527effa2f0f0e_amybaxia.jpg!1)
- 粉丝: 1
- 资源: 56
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- AirKiss技术详解:无线传递信息与智能家居连接
- Hibernate主键生成策略详解
- 操作系统实验:位示图法管理磁盘空闲空间
- JSON详解:数据交换的主流格式
- Win7安装Ubuntu双系统详细指南
- FPGA内部结构与工作原理探索
- 信用评分模型解析:WOE、IV与ROC
- 使用LVS+Keepalived构建高可用负载均衡集群
- 微信小程序驱动餐饮与服装业创新转型:便捷管理与低成本优势
- 机器学习入门指南:从基础到进阶
- 解决Win7 IIS配置错误500.22与0x80070032
- SQL-DFS:优化HDFS小文件存储的解决方案
- Hadoop、Hbase、Spark环境部署与主机配置详解
- Kisso:加密会话Cookie实现的单点登录SSO
- OpenCV读取与拼接多幅图像教程
- QT实战:轻松生成与解析JSON数据
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)