Struts Convention Plugin 流程 (2.1.6+)
首先添加lib:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
<version>2.3.20</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.3.20</version>
</dependency>
访问 http://localhost:8080/conv/config-browser/a.action 可以查看目前映射的所有路径
插件会按以下顺序执行:
1.寻找以下包:struts, struts2, action ,actions
任何深度找到的以上包都自动作为根目录
2.然后在包内寻找以下类:实现了com.opensymphony.xwork2.Action或者继承了com.opensymphony.xwork2.ActionSupport,或类名以Action结尾
3.映射为url:
com.example.actions.MainAction -> /main
com.example.actions.products.Display -> /products/display
com.example.struts.company.details.ShowCompanyDetailsAction -> /company/details/show-company-details(全部为小写)
比如,
会映射成,

可以跳过某些包:struts.convention.exclude.packages=org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.* (被跳过的包是无法再加入的,即使手动添加)
自动搜索的包名:struts.convention.package.locators=action,actions,struts,struts2
自动搜索的包名开头:struts.convention.package.locators.basePackage=
自动搜索的类名结尾:struts.convention.action.suffix=Action
手动指定具体包:struts.convention.action.packages=
4.默认,所有的Result都到这里去找:WEB-INF/content
如,
,则可以通过 http://localhost:8080/conv/my-jsp.action 访问到
可通过常量控制:struts.convention.result.path=/WEB-INF/content/
根据返回类型和返回字符串,要起不同的名字:

5.如果找不到这个页面文件,就认为这是个action,其他action可以在方法上添加@Action(“xx”),指明具体路径,这也就是Result Type为chain
如
中,
public class MyJsp extends ActionSupport {
public String execute() {
return "here";
}
}
public class HimJsp extends ActionSupport {
@Action("my-jsp-here") //通过指定为具体路径,实现chain,前提是没有那个页面文件
public String execute() {
return "yes";
}
}
最后会变成,

可以设置自动重载:
<constant name="struts.devMode" value="true"/>
<constant name="struts.convention.classes.reload" value="true" />
struts.convention.action.alwaysMapExecute =false 禁止自动调用execute()
struts.convention.action.disableScanning=true 禁用扫描
struts.convention.action.mapAllMatches =true 没有@Action也自动映射
struts.convention.action.name.lowercase=false 不要变成小写
struts.convention.action.name.separator=_ 名称分隔符
struts.convention.action.eagerLoading=true 不使用Spring的时候可以提高性能
Struts Convention Plugin 流程 (2.1.6+)的更多相关文章
- struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法
环境: struts 2.3.16.3 + Convention Plugin 2.3.16.3 实现零配置 现象:以文件夹方式部署在weblogic(10.3.3)上时一切正常,换成war包部署,运 ...
- Struts2 Convention Plugin ( struts2 零配置 )
Struts2 Convention Plugin ( struts2 零配置 ) convention-plugin 可以用来实现 struts2 的零配置.零配置的意思并不是说没有配置,而是通过约 ...
- Struts2学习---拦截器+struts的工作流程+struts声明式异常处理
这一节我们来看看拦截器,在讲这个之前我是准备先看struts的声明式异常处理的,但是我发现这个声明式异常处理就是由拦截器实现的,所以就将拦截器的内容放到了前面. 这一节的内容是这样的: 拦截器的介绍 ...
- Struts 2 执行流程 配置信息
Struts 2 执行流程 首先,浏览器访问,经过Filter,Filter从src/struts.xml中寻找命名空间和action的名字,获取action类,从方法中拿到返回值,接着从result ...
- struts的工作流程
- 一个请求过来,走前端控制器StrutsPrepareAndExecuteFilter -前端控制器是一个过滤器,过滤器中的核心方法是doFilter(),doFilter方法中首先处 ...
- Struts 2的流程
Struts 2的流程 一.Struts 2 的开发步骤: 在web.xml中定义核心的Filter来拦截用户的请求. 由于Web应用时基于请求/响应架构的应用,所以不管哪个MVC Web框架,都需要 ...
- Struts学习之流程汇总
struts2 架构图如下图所示: 依照上图,我们可以看出一个请求在struts的处理大概有如下步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求: 2.这个请求经过一系列的 ...
- Struts Spring Plugin注意点
Settings The following settings can be customized. See the developer guide. Setting Description Defa ...
- Struts 2开发基本流程
Struts 2工作流程 Struts2是一个基于MVC设计模式的Web开发框架, 正如官网上介绍的那样: ApacheStruts 2 is an elegant, extensible frame ...
随机推荐
- RPC 原理的前生今世
(如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 在校期间大家都写过不少程序, ...
- bootrom启动流程【转】
转自:http://blog.csdn.net/blueoceanindream/article/details/6851787 闲来无事,总结一下linux bootrom的启动流程: 环境:MIP ...
- hbase-0.94.16 在hadoop-1.2.1的安装配置
1. ZooKeeper的安装: ZooKeeper是一个分布式的服务框架.可用于处理分布式的一些数据管理问题,如统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等. 步骤如下: a. 准 ...
- 《c程序设计语言》读书笔记--反转字符串
#include "stdio.h" #define Num 100 void reverse(char words[]) { int i, j, c, n=0; while(wo ...
- BZOJ 3172 单词(ac自动机)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3172 题意:给出n个单词.输出每个单词在所有单词中一共出现多少次? 思路:首先将所有单词 ...
- Android使用 LruCache 缓存图片
摘要:在你应用程序的UI界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来. 使用图片缓存技术 在 你应用程序的UI界面加载一张图片是一件很简单的事情,但 ...
- 51nod1120 机器人走方格 V3
跟括号序列是一样的,将向右走看成是左括号向左走看成是右括号就可以了.那么就是卡特兰数了.然后由于n和m太大所以用了lucas定理 //跟括号序列是一样的,将向右走看成是左括号向左走看成是右括号就可以了 ...
- Sublime安装插件的方法
一:打开:工具--命令面板 二:输入:package,,选择下拉列表里提示的install package 三:输入需要安装的插件的名称,如:angularJS Less sass 回车即可安装, ...
- Hadoop实战课程
Hadoop生态系统配置Hadoop运行环境Hadoop系统架构HDFS分布式文件系统MapReduce分布式计算(MapReduce项目实战)使用脚本语言Pig(Pig项目实战)数据仓库工具Hive ...
- XenServer6.2详细安装步骤
系统要求 系统要求 XenServer 至少需要两台单独的 x86 物理计算机:一台用作 XenServer 主机,另一台用于运行XenCenter 应用程序. XenServer 主计算机完全专用于 ...