ActionInvocation就是Action的调用者。ActionInvocation在Action的执行过程中,负责Interceptor、Action和Result等一系列元素的调度。
Interceptor通过ActionInvocation可以完全的改变Action行为:不让它执行、改变返回值、甚至可以细颗粒的操作Action的方法
查看ActionINvocation 的API,他有getActionProxy(),getResultCode();getActionContext();
ActionProxy在action中用来构建执行环境,ActionProxy提供Action执行的时候一切所需要的配置、参数等等,当然,也要有进行Action调用的入口。
分享到:
相关推荐
Struts2框架中,`ActionInvocation`是AOP的核心组件,它负责调用Action的执行流程。本文将深入探讨`ActionInvocation`的源码,帮助开发者更好地理解和利用这个关键类。 首先,`ActionInvocation`接口位于Struts2的...
- **DefaultActionProxy**:ActionProxy是Action的代理,负责创建ActionInvocation实例并管理Action的生命周期。 - **ActionContext**:ActionContext封装了线程上下文中的所有信息,包括ValueStack、Parameters、...
8. Action 执行完毕,ActionInvocation 创建 Result 并返回,当然,如果要在返回之前做些什么,可以实现 PreResultListener。 4. Struts2(2.1.2) 部分源码阅读 从 org.apache.struts2.dispatcher.FilterDispatcher...
ActionProxy由ActionInvocation持有,ActionInvocation则负责执行Action,并在Action执行前后调用一系列拦截器。拦截器是Struts2的一个重要特性,它们提供了扩展点,可以在Action执行前后插入自定义逻辑,如日志、...
接着,ActionProxy创建一个ActionInvocation实例,ActionInvocation会利用代理模式调用Action,并在调用之前加载所有与Action相关的Interceptor(拦截器)。 拦截器是Struts2的重要特性,它们允许在Action执行前后...
2. **ActionInvocation**:ActionInvocation是执行动作的接口,它定义了如何调用一个动作以及处理动作的结果。通过ActionInvocation,你可以跟踪动作执行的整个生命周期,包括调用前后的拦截器链。 3. **...
`ActionProxy`创建并初始化`ActionInvocation`对象,`ActionInvocation`则负责执行Action,并管理拦截器(Interceptors)的调用。 在请求流程中,`ActionInvocation`会按照预定义的顺序调用拦截器,然后执行Action...
ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。 一旦Action执行完毕,...
它包括ActionInvocation、ActionProxy、Interceptor等关键组件。ActionInvocation是执行链的核心,它负责调用一系列Interceptor和Action本身。Interceptor(拦截器)是Struts2的一个重要特性,可以用来实现如日志、...
6. **ActionInvocation**:`ActionProxy`创建一个`ActionInvocation`实例,`ActionInvocation`负责执行Action,并管理Action执行前后的拦截器(Interceptor)调用。这些拦截器可以用来进行日志记录、权限验证、数据...
7. **ActionInvocation**:`ActionProxy`创建一个`ActionInvocation`实例,它封装了Action的执行流程。`ActionInvocation`不仅持有Action实例,还包含所有相关的拦截器(Interceptor)。 8. **Interceptor调用**:...
ActionProxy创建ActionInvocation实例,然后由ActionInvocation执行Interceptor(拦截器)链,最终调用实际的Action。执行完成后,ActionInvocation生成Result并返回,如果需要在返回前进行额外操作,可以通过实现...
4. 在`intercept`方法中,通常会先调用`ActionInvocation`的`invoke`方法,这将执行下一个拦截器或者直接执行Action。 5. Action执行完成后,控制权返回给拦截器,按相反的顺序继续执行剩余的拦截器。 6. 最后,结果...
6. **ActionInvocation**:ActionProxy创建ActionInvocation实例,它代表了Action的执行流程。ActionInvocation维护了Action实例和一系列Interceptor。在调用Action之前和之后,相关的Interceptor会被执行,提供了...
首先是拦截器的调用,拦截器调用中会重新回调ActionInvocation的invoke,当拦截器调用完毕后,会调用当前操作的method 6. 当进入具体Controller的新增方法时,调用基类getModel(Systemparam.class);这个方法会从...
Action是业务逻辑的执行主体,ActionContext是当前请求的上下文容器,ActionInvocation负责调用Action并管理拦截器链,Interceptor则实现了业务逻辑的预处理和后处理功能。 二、Action与ActionInvocation Action类...
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果...
总的来说,Struts2的工作原理是通过一系列的过滤器、ActionMapper、ActionProxy、ActionInvocation和拦截器协同工作,实现了对请求的处理、业务逻辑的执行以及视图的渲染。这一系列的流程使得开发者能够专注于业务...
6. **ActionProxy创建ActionInvocation**:`ActionProxy`会进一步创建`ActionInvocation`对象,该对象包含了Action实例和相关拦截器的配置信息。 7. **执行Action及拦截器**:`ActionInvocation`会依次调用配置好的...