0 0

有关Struts2中DispatcherListener的使用0

 

在读《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-->

2012年9月06日 14:19

2个答案 按时间排序 按投票排序

0 0

采纳的答案

这个struts2自己没有用到。

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

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

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

来完成一些扩展。

2012年9月06日 14:47
0 0

这个东西没必要扩展不扩展也行!

2013年2月28日 09:26

相关推荐

    struts2标签使用例子

    - 在JSP页面中使用标签,如`s:textfield name="username"`绑定Action的username属性。 - 配置Struts2的配置文件(struts.xml或struts.properties),定义Action和结果。 通过以上介绍,我们可以看出Struts2标签库...

    在struts2中使用freemarker模版

    这样做是为了确保Struts2在服务器启动时能优先加载这个servlet,以便支持FreeMarker模板中使用Struts2的标签。 在`struts.xml`配置文件中,定义一个action,比如`test`,并指定其结果类型为`freemarker`,这样当...

    Struts2漏洞检查工具Struts2.2019.V2.3

    使用此工具可以帮助企业及时发现并修复Struts2框架中的安全漏洞,减少网络安全风险,确保数据和系统的安全。同时,对于开发者来说,了解Struts2的安全隐患以及如何避免它们是至关重要的,这样才能更好地保障应用的...

    struts2帮助文档

    struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中实现文件上传 struts2中实现CRUD struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2...

    留言板留言板struts2留言板struts2

    以上就是关于"留言板留言板struts2"项目可能涉及的Struts2相关知识点。这个项目可能包含了Action编写、视图渲染、用户交互、数据验证等基本功能,是学习和理解Struts2框架的一个很好的实践案例。通过分析和运行这个...

    struts2-scan_struts2-scan_struts2scan_scan_struts2漏洞_

    这个标题和描述提到的"struts2-scan"是一种工具,专门用来检测Struts2框架中的安全漏洞。 Struts2漏洞通常涉及到框架的核心组件,例如OGNL(Object-Graph Navigation Language)表达式,这是一种强大的语言,允许在...

    struts2jar包

    在项目中使用Struts2时,我们需要配置struts2的主配置文件(struts.xml),定义Action、结果类型、拦截器栈等。Action是业务逻辑的入口点,Result表示一个操作完成后转向的页面或结果。拦截器是Struts2的一大特色,...

    Struts2-API+Struts2中文帮助文档

    文档中还会讲解如何使用Struts2的异常处理机制,以及如何调试和解决常见的运行时问题。 总的来说,这个压缩包对于想深入理解并熟练掌握Struts2框架的开发者来说是宝贵的资源。通过API文档可以了解框架的底层机制,...

    struts1和struts2的区别

    - **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...

    struts2小程序 struts2代码

    在`AndroidTest`这个文件名中,虽然不明确,但可能包含了一个Android相关的测试部分,或者是一个使用Struts2实现的接口,用于与Android客户端交互。如果涉及到Android,可能需要了解RESTful API设计、JSON数据交换...

    Struts2初步使用总结

    ### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...

    struts2框架的使用

    在本压缩包中,你可能会找到关于Struts2框架配置和使用的一些关键文件,这将帮助你在未来回顾或重新学习Struts2时快速上手。 首先,让我们深入了解一下Struts2的核心概念: 1. **Action类**:在Struts2中,业务...

    使用Struts 2框架开发租房网站

    在开发租房网站的过程中,学生将学习如何创建Action类、配置struts.xml、设计数据库模型、编写DAO和Service层代码、实现页面交互以及使用Struts 2提供的各种功能来优化用户体验。这将帮助他们掌握Web应用开发的基本...

    struts2jar.zip

    "使用说明-jar包.txt"很可能是一个文本文件,提供了关于如何在项目中使用Struts2库的指导。通常,Struts2的核心库和其他依赖库会以JAR(Java Archive)文件的形式包含在项目中,这些JAR文件包含了框架的所有类和方法...

    struts2标签使用方法

    Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂、多变的需求。 Struts2 标签分类 Struts2 标签库可以分为三大类:UI 标签、非 UI 标签和 Ajax 标签。 UI 标签 UI 标签主要用于生成 HTML ...

    struts2初始使用环境配置

    在开始使用Struts2之前,我们需要先进行环境配置。以下将详细介绍Struts2的初始使用环境配置步骤。 首先,确保你已经安装了Java Development Kit (JDK)。JDK是开发Java应用的基础,你需要至少JDK 1.6或以上版本来...

    Struts2接口文档

    总的来说,Struts2接口文档是学习和使用Struts2框架不可或缺的工具,它能帮助开发者高效地理解和使用框架提供的各种组件和接口,提升开发效率,减少错误,并有助于深入理解MVC模式在实际项目中的应用。通过仔细研读...

    Struts2+Jquery+Ajax

    在Struts2中,Jquery可以与Ajax结合使用,实现页面的无刷新更新。 Ajax(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,无需整个页面刷新,提高了用户体验。在Struts2框架下,我们可以使用...

    struts2全部的jar包

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。这个“struts2全部的jar包”压缩文件包含了运行Struts2应用程序所需的所有核心库和依赖组件。这里我们将深入探讨Struts...

    struts2所有jar包程序文件

    3. `ognl.jar`:Object-Graph Navigation Language (OGNL)是Struts2中使用的表达式语言,用于在视图层和模型层之间传递数据。 4. `freemarker.jar`和`velocity.jar`:这两种是模板引擎,用于生成动态HTML页面。...

Global site tag (gtag.js) - Google Analytics