码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-06-18 07:48:10      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:struts2.0   文档   struts   

1.1     ActionProxy接口以及实现

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

1.1.1       ActionProxy接口方法

bubuko.com,布布扣

图 3.3.1 ActionProxy接口主要方法图

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

1.1.2       ActionProxy接口实现类

bubuko.com,布布扣

图 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

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

标签:struts2.0   文档   struts   

原文地址:http://blog.csdn.net/sxb0841901116/article/details/31809267

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!