weixin_42332083 2012-09-06 14:19
浏览 207
已采纳

有关Struts2中DispatcherListener的使用

 

在读《Struts2技术内幕》这本书的时候,在核心分发器Dispatcher初始化这一块,有一个问题始终没有弄明白,希望各位不吝赐教。

问题描述:

作者在第三部分的第9章讲Dispatcher初始化时有这样一句话:

有了DispatcherListener接口,相当于我们拥有了在Dispatcher初始化过程中进行自由扩展的一个接口。这也是Struts2在初始化主线中为我们提供的一个重要扩展点。

但我看了API、看了源码,也没有找到使用DispatcherListener的办法,请问我们应该如何使用它,作者上面的话是什么意思?假设一定要用它的话..

Dispatcher源码中是这样的:

 

/**
     * Store list of DispatcherListeners.
     */
    private static List<DispatcherListener> dispatcherListeners =
        new CopyOnWriteArrayList<DispatcherListener>();
/** 
     * Add a dispatcher lifecycle listener. 
     * 
     * @param listener The listener to add 
     */  
    public static void addDispatcherListener(DispatcherListener listener) {  
        dispatcherListeners.add(listener);  
    }  
  
    /** 
     * Remove a specific dispatcher lifecycle listener. 
     * 
     * @param listener The listener 
     */  
    public static void removeDispatcherListener(DispatcherListener listener) {  
        dispatcherListeners.remove(listener);  
    }  

Dispatcher的init方法部分代码:

            if (!dispatcherListeners.isEmpty()) {
                for (DispatcherListener l : dispatcherListeners) {
                    l.dispatcherInitialized(this);
                }
            }

在Dispatcher初始化过程中并没有调用到以上方法的地方啊!在Dispatcher的init方法之前好像没有addDispatcherListener调用的地方,那么我们应该如何使用呢?

谢谢...

<!--EndFragment--> <!--EndFragment-->

  • 写回答

2条回答 默认 最新

  • jinnianshilongnian 2012-09-06 14:47
    关注

    这个struts2自己没有用到。

    用于扩展使用,比如你要定制Dispatcher,或者修改Dispatcher的某些东西;
    可以继承FilterDispatcher 然后获取Dispatcher 然后添加DispatcherListener。

    就是一个扩展点,但好像没见有用的。

    还可以通过继承StrutsPrepareAndExecuteFilter
    protected void postInit(Dispatcher dispatcher, FilterConfig filterConfig) {
    }

    来完成一些扩展。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大