深入struts2.0(六)--ActionProxy类

1.1     ActionProxy接口以及实现

ActionProxy在struts框架中发挥着非常重要的作用。通过webwork和xwork交互关系图可以看出,它是action和xwork中间的一层。 正因为ActionProxy的存在导致Action调用更加简洁。接下来我们一起研究下这个核心类。

1.1.1       ActionProxy接口方法

图 3.3.1 ActionProxy接口主要方法图

ActionConfig getConfig();该方法主要是获得创建ActionProxy类的action配置信息。getExecuteResult()方法就是判断执行后action后是否执行result. getInvocation()获得与ActionProxy相关联的ActionInvocation.

1.1.2       ActionProxy接口实现类

图 3.3.2 ActionProxy接口实现类图

根据命名就知道defaultActionProxy是默认的actionProxy代理。 对于MockActionProxy这个类笔者也不太明白,这个类在struts代码中也没有用。在API中也没有说明,根据字面意思,就是对ActionProxy一个简单实现。

1.1.3       DefaultActionProxy实现类

在dispatcher类中我们可以看到如下代码:

proxy.execute();

表示将由ActionProxy代理类来执行action,所有action的主要执行方法就是actionProxy中的execute.


public String execute() throws Exception {

ActionContext nestedContext = ActionContext.getContext();

ActionContext.setContext(invocation.getInvocationContext());

String retCode = null;

String profileKey = "execute: ";

try {

UtilTimerStack.push(profileKey);

retCode = invocation.invoke();

finally {

if (cleanupContext) {

ActionContext.setContext(nestedContext);

}

UtilTimerStack.pop(profileKey);

}

return retCode;

}

图 3.3.3 ActionProxy接口execute方法

首先把InvocationContext设置到ActionContext上下文中。然后调用InvocationContext中的invoke方法执行。

深入struts2.0(六)--ActionProxy类,布布扣,bubuko.com

时间: 2024-11-16 01:50:40

深入struts2.0(六)--ActionProxy类的相关文章

深入struts2.0(五)--Dispatcher类

1.1.1       serviceAction方法 在上个Filter方法中我们会看到如下代码: this.execute.executeAction(request, response, mapping); 图3.2.1  Filter方法中跳转到action图 而在ExecuteOperations类中(excute是一个实例)有如下代码: public void executeAction(HttpServletRequest request, HttpServletResponse

struts2.0的总结

概述 struts2.0是MVC思想的一个具体的框架. struts2.0和struts1.0的关系 要想清楚struts1.0和struts2.0之间的关系,首先要知道WebWork,WebWork是MVC思想的又一个新框架,这个被OpenSymphony组织开发的框架,很大程度的得到大家的认可,在WebWork框架出来之前,Apache组织开发出了struts1.0,但是,由于WebWork框架相对于struts1.0来说,有诸多优点,于是,Apache又开发出了struts2.0,stru

struts2.0中Action的对象生命周期详解!!(转)

原文出处:http://blog.csdn.net/wxy_g/article/details/2071662 有很多人问Struts2.0中的对象既然都是线程安全的,都不是单例模式,那么它究竟何时创建,何时销毁呢? 这个和struts2.0中的配置有关,我们来看struts.properties ### if specified, the default object factory can be overridden here ### Note: short-hand notation is

【struts2】继承ActionSupport类

在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以:也可以实现Xwork2中的Action接口:但是由于Xwork的Action接口非常简单,为程序员提供的帮助有限,因此,在实际开发中,会更多的使用继承ActionSupport类来实现Action的方式,如下所示: import com.opensymphony.xwork2.ActionSupport; public class

sdut 面向对象程序设计上机练习六(类和对象)

面向对象程序设计上机练习六(类和对象) Time Limit: 1000MS Memory limit: 65536K 题目描述 用类成员函数完成5个整型数组元素的输入.从小到大排序.排序后数组元素的输出. 输入 输入5个数组元素. 输出 输出5个数组元素从小到大排序后的结果.(最后一个数后面既没有空格也没有换行) 示例输入 8 9 1 5 4 示例输出 1 4 5 8 9 提示 来源 zlh 示例程序 #include <iostream> using namespace std; //定义

Struts2.0 框架搭建步骤详解

实现了MVC思想的struts框架,主要分三层结构,即:view->controller->model,三者互相传递数据,实现了数据在前台和后台的转换,验证,展示,存储. 搭建struts框架的步骤如下: 1.在myeclipse中新建Java项目,删除项目中的源文件src,建立普通文件,将Struts解压后的jar包复制在新建的普通文件夹中. 2.新建web项目,右键选择build path->add jars(不是导入外部第三方的jar包) 选择第一步新建的Java项目,将里面的Ja

(转)struts2.0配置文件、常量配置详解

一.配置: 在struts2中配置常量的方式有三种: 在struts.xml文件中配置 在web.xml文件中配置 在sturts.propreties文件中配置 1.之所以使用struts.propreties文件配置,是因为为了保持与WebWork的向后兼容 2.在实际开发中,在web.xml中配置常量相比其他两种,需要更多的代码量,会降低了web.xml的可读性 3.通常推荐在struts.xml文件中配置struts2的常量,而且便于集中管理 sturt2中搜索加载常量的顺序是: str

谈谈Delphi中的类和对象:五、类是一种对数据和操作高度的封装机制;六、类是一种代码重用机制

五.类是一种对数据和操作高度的封装机制 1)数据封装 unit Unit2; interface type TEmployee = class; private FName: String; public Constructor Create; function GetName: String; procedure SetName(AName: String); end; implementation constructor TEmployee.Create; begin FName:= 'Xu

Struts2.0+Spring3+Hibernate3(SSH~Demo)

前言:整理一些集成框架,发现网上都是一些半成品,都是共享一部分出来(确实让人很纠结),这是整理了一份SSH的测试案例,完全可以用! 言归正传,首先强调一点首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中