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 Oracle触发器记录修改前后的字段值
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器