首页 > 代码库 > 深入struts2.0(六)--ActionProxy类
深入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类中我们可以看到如下代码:
|
表示将由ActionProxy代理类来执行action,所有action的主要执行方法就是actionProxy中的execute.
|
图 3.3.3 ActionProxy接口execute方法
首先把InvocationContext设置到ActionContext上下文中。然后调用InvocationContext中的invoke方法执行。