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类的更多相关文章

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

    1.1.1       serviceAction方法 在上个Filter方法中我们会看到例如以下代码: this.execute.executeAction(request, response, m ...

  2. Struts2.0笔记二

    Mvc与servlet 1.1   Servlet的优点 1.  是mvc的基础,其他的框架比如struts1,struts2,webwork都是从servlet基础上发展过来的.所以掌握servle ...

  3. struts2.0整合json

    框架:struts2.0+hibernate2+spring 今天写代码时,需要用到json,我就直接加了两个jar包:json-lib-2.1-jdk15.jar,struts2-json-plug ...

  4. [转]初探Struts2.0

    本文转自:http://blog.csdn.net/kgd1120/article/details/1667301 Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的 ...

  5. Struts2实现Preparable接口和【struts2】继承ActionSupport类

    Struts2实现Preparable接口 实现preparable接口,实现public void prepare() throws Exception 方法.当你访问某问action指定方法之前, ...

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

    一.配置: 在struts2中配置常量的方式有三种: 在struts.xml文件中配置 在web.xml文件中配置 在sturts.propreties文件中配置 1.之所以使用struts.prop ...

  7. struts2.0 struts.xml配置文件详解

    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...

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

    Struts2.0+Spring3+Hibernate3(SSH~Demo) 前言:整理一些集成框架,发现网上都是一些半成品,都是共享一部分出来(确实让人很纠结),这是整理了一份SSH的测试案例,完全 ...

  9. struts2.0中struts.xml配置文件详解

    先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...

随机推荐

  1. SDUTOJ 2712 5-2 派生类的构造函数

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUl9NaXNheWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  2. Mysql 常用函数集

    1.分类导航 一共分为5类函数 . 字符型函数 . 数值型函数 . 日期型函数 . 统计型函数 . 其它型函数 2.字符型函数[约48个] ascii(str) bin(n) bit_length(s ...

  3. Spring 注解 @Scheduled(cron = "0 0/10 * * * ? ") 任务调度动态改变时间

    不需要重启应用就可以动态的改变Cron表达式的值 import java.util.Date; import java.util.concurrent.Executor; import java.ut ...

  4. UML类图详解_聚合关系

    结合UML关系,以看台和基金来介绍聚合关系 aggregation,是一种特殊的关联关系,既有关联关系的特质,还独有“整体 —— 部分(whole —— part)”的特质. 也就是说,用之前的关联关 ...

  5. connect()

    #include <sys/types.h>         #include <sys/socket.h> int connect(int sockfd, const str ...

  6. 李洪强iOS开发之OC[002] - OC中注释以及@符号的使用

  7. java - day05 - Array

    /* 生成随机数组,寻找最大值 */ package day05; public class ArrayGuess { public static void main(String args[]) { ...

  8. C# WEB 不显示目录结构

    <system.webServer> <directoryBrowse enabled="false" /> </system.webServer&g ...

  9. linux服务器宕机分析/性能瓶颈分析

    linux服务器宕机分析/性能瓶颈分析   服务器宕机原因很多,资源不足.应用.硬件.系统内核bug等,以下一个小例子 服务器宕机了,首先得知道服务器宕机的时间点,然后分析日志查找原因 1.last ...

  10. java 获取网页指定内容-2(实践+修改)

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; ...