1700484870
代码清单38-11 模型行为分发接口
1700484871
1700484872
public interface IActionDispather{
1700484873
1700484874
//根据Action的名字,返回处理结果
1700484875
1700484876
public String actionInvoke(String actionName);
1700484877
1700484878
}
1700484879
1700484880
它的职责非常简单,得到actionName就执行,熟悉Struts的读者可能很清楚这个方法是非常复杂的,它要从配置文件中找到执行对象,然后执行方法,还要考虑值栈、异常等等,非常复杂。我们这里就有一个方法,它对外提供一个门面,所有的访问都是通过该门面来完成,其实现类如代码清单38-12所示。
1700484881
1700484882
代码清单38-12 模型分发实现
1700484883
1700484884
public class ActionDispather implements IActionDispather{
1700484885
1700484886
//需要执行的Action
1700484887
1700484888
private ActionManager actionManager=new ActionManager();
1700484889
1700484890
//拦截器链
1700484891
1700484892
private ArrayList<Interceptors>listInterceptors=InterceptorFactory.createInterceptors();
1700484893
1700484894
public String actionInvoke(String actionName){
1700484895
1700484896
//前置拦截器
1700484897
1700484898
return actionManager.execAction(actionName);
1700484899
1700484900
//后置拦截器
1700484901
1700484902
}
1700484903
1700484904
}
1700484905
1700484906
它是一个非常简单的类,对外部提供统一封装好的行为。模型管理器的类图如图38-6所示。
1700484907
1700484908
1700484909
1700484910
1700484911
图38-6 模型管理器类图
1700484912
1700484913
首先说ActionManager类,它负责管理所有的行为类Action,那就必须定义一个行为类的接口或抽象类,如代码清单38-13所示。
1700484914
1700484915
代码清单38-13 抽象Action
1700484916
1700484917
public abstract class ActionSupport{
1700484918
1700484919
public final static String SUCCESS=“success”;
[
上一页 ]
[ :1.70048487e+09 ]
[
下一页 ]