`
pengsuyun
  • 浏览: 15260 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

wicket 学习之WicketFIlter中监听初始化

阅读更多
    在WicketFilter初始化的时候,会调用webApplication.initializeComponents()完成组建监听的初始化工作。在wicket1.4.13版本中,实际上掉用了两个类的init方法:
   1、org.apache.wicket.Initializer
   2、org.apache.wicket.extensions.Initializer
这里以org.apache.wicket.Initializer为例介绍监听的初始化工作。
   首先来看看init中的代码:
IBehaviorListener.INTERFACE.register();
IFormSubmitListener.INTERFACE.register();
ILinkListener.INTERFACE.register();
IOnChangeListener.INTERFACE.register();
IRedirectListener.INTERFACE.register();
IResourceListener.INTERFACE.register();
IActivePageBehaviorListener.INTERFACE.register();
    以IBehaviorListener.INTERFACE.register();为例,其中INTERFACE维护了org.apache.wicket.RequestListenerInterface对象,register()方法将IBehaviorListener监听器注册到RequestListenerInterface的interfaces中。
    监听原理说明:
    每个监听接口中都维护了org.apache.wicket.RequestListenerInterface对象,这个对象被设计成静态最终常量,所以在类加载的时候,就被初始化了。API中关于这个类的解释是:Base class for request listener interfaces.这个类在wicket的监听机制中至关重要。为什么重要呢?第一、RequestListenerInterface中维护了一个Map<String, RequestListenerInterface> interfaces,在这个interfaces中保存了所有应用初始化过程中注册的监听器,在wicket的request中会用来完成组建注册监听工作;第二、RequestListenerInterface提供了监听器的回调,这个地方其实是调用了组建上的方法(与监听器同名的方法)(这点很重要,监听程序我认为就是为组建服务的。);第三、RequestListenerInterface中提供了newRequestTarget方法,用来绑定页面,组建,监听。通过RequestListenerInterface,wicket在处理页面请求的时候,完成监听的操作。
     下面提供了一些相关的类,供参考:
org.apache.wicket.Initializer :Initializer for components in wicket core library.
org.apache.wicket.IRequestListener :Base interface for all interfaces that listen for requests from the client browser.
org.apache.wicket.RequestListenerInterface :Base class for request listener interfaces.
org.apache.wicket.IRequestTarget :A request target is the base entity that is the subject of a request.
org.apache.wicket.request.target.component.IPageRequestTarget :Request target that denotes a page instance.
org.apache.wicket.request.target.component.PageRequestTargetefault implementation of { IPageRequestTarget}. Target that denotes a page instance.
org.apache.wicket.request.target.component.listener.AbstractListenerInterfaceRequestTarget:
Target that denotes a page instance and a call to a component on that page using an listener interface method.
org.apache.wicket.request.target.component.listener.BehaviorRequestTarget :Target that denotes a page instance and a call to a component on that page using an listener
org.apache.wicket.RequestCycle :Represents the processing of a request.

   


分享到:
评论

相关推荐

    实战wicket学习总结

    【实战Wicket学习总结】 Wicket是一个Java Web应用程序框架,以其独特的组件模型和强大的MVC设计而备受赞誉。本文将基于三年的Wicket项目经验,深入探讨Wicket的关键特性和在实际开发中遇到的问题及解决方案。 1. ...

    Wicket源码初读

    接着,`WicketFilter init.txt`涉及到WicketFilter的初始化过程。WicketFilter是部署在Servlet容器(如Tomcat)中的一个过滤器,它拦截所有的HTTP请求,并根据配置决定是否由Wicket框架来处理。在初始化阶段,...

    wicket7教程

    组件生命周期也是Wicket中的一个重要概念,包括初始化、渲染和移除三个阶段。每个阶段都有相应的钩子方法,允许开发者在组件生命周期的特定点上插入自定义行为。Wicket还支持有状态页面和无状态页面,分别对应于是否...

    wicket国际化例子

    在本文中,我们将深入探讨Wicket框架中的国际化(i18n)实现,以及如何使用`wicket:message`和`StringResourceModel`等工具来读取`.properties`资源文件。Wicket是一个流行的Java web应用程序框架,它提供了强大的...

    wicket例子和开发指南

    这个压缩包包含了一个Wicket的开发指南PDF文档以及一些示例项目,这些都是学习和掌握Wicket框架的重要资源。 一、Wicket框架简介 Wicket的核心理念是"组件就是一切",它将Web页面的HTML与Java代码紧密结合,通过...

    wicket1,4.17中除了jar包和example外的部分

    例如,你可以研究Wicket如何处理页面状态管理、Ajax请求、国际化和本地化、以及组件生命周期等。源码阅读有助于提升开发者对框架的掌握程度,使其能够编写出更高效、更符合需求的代码。 此外,虽然这个压缩包不包含...

    wicket1.4.7中的jar包

    Wicket是一个开源的Java Web应用程序框架,它提供了一种组件化的开发方式,使得开发者能够创建交互性强、用户体验良好的Web应用。在Wicket 1.4.7版本中,包含了一系列的jar包,这些jar包是构建和运行基于Wicket的...

    wicket开发指南 pdf

    在创建阶段,可以进行初始化操作;销毁阶段则通常用于释放资源。 **三、模型-视图-控制器(MVC)** Wicket 的MVC模型不同于传统意义上的MVC,它的核心是组件,而不是控制器。组件自身既是视图,也是模型的一部分,...

    wicket学习

    2. **Form组件**:表单组件是Wicket中最常用的组件之一,用于收集用户输入的数据。 - **添加组件**:可以将多个组件添加到一个表单中,例如: ```java Form&lt;ClinicItem&gt; form = new Form("form"); add(new ...

    wicket 基础知识培训

    Servlet容器(如Tomcat)管理Servlet的生命周期,包括初始化(调用`init()`方法)、服务提供(调用`service()`方法)和销毁(调用`destroy()`方法)。此外,Servlet容器还处理并发访问,提高了性能,因为它为每个...

    wicket简单实例

    `Include`组件允许你在Wicket页面中嵌入其他组件或整个页面,实现页面的模块化和重用。 7. **Wicket_border**: 边框组件(Border)是Wicket的一个强大特性,它可以作为一个容器,包含其他组件,并提供统一的布局...

    wicket指南

    1. **创建页面类**:在Wicket中,每个页面都有一个对应的Java类,类中定义了页面的组件和行为。 2. **绑定HTML模板**:页面类与HTML模板通过`@MountPath`注解或`WebPage`的构造函数关联。 3. **组件定义**:使用`add...

    Wicket中文开发指南

    同时,参考《Wicket中文开发指南》和在线博文中提供的示例,可以加速学习进程。 总的来说,Wicket为中文Web应用开发提供了强大而灵活的平台。通过深入理解其核心概念和实践,开发者能够构建出高效、用户友好的Web...

    Wicket.pdf(Wicket开发指南)

    - Wicket 采用了事件驱动的设计思想,每个用户操作都会触发相应的事件,进而调用监听器进行处理。 - **用户请求处理:** - 当用户发起请求时,Wicket 会根据 URL 映射到相应的页面类,然后处理请求并返回响应。 ...

    wicket 官方JAVA教程

    Wicket是一款开源的Java Web应用程序框架,它强调组件化和声明式编程模型,使得开发人员可以构建出用户界面更加灵活且易于维护的Web应用。本教程将深入探讨Wicket的核心概念、特性以及如何利用它进行实际开发。 1. ...

    apacke-wicket-mvn编译

    使用这个版本,开发者可以了解和学习Wicket 6.x系列的特性和使用方法,同时也可以直接在项目中引用这些库文件进行开发。 总结来说,这个压缩包提供了一个使用Apache Maven构建的Apache Wicket项目,版本为6.16.0。...

    wicket的tree的简单实例

    在本文中,我们将深入探讨Wicket框架中关于Tree组件的简单使用方法,这对于初学者来说是一份极好的学习资源。Wicket是一个强大的Java Web应用程序框架,它提供了丰富的组件库,其中包括用于显示层次结构数据的Tree...

    wicket_mvn库

    在 Wicket 开发中,常见的 Maven 插件包括 Wicket-Tester(用于单元测试 Wicket 组件)和 Wicket-Eclipse-Plugin(Eclipse IDE 的插件,提供代码提示和调试支持)。 6. **mvn_tmp 文件**: 这个文件名可能是临时文件...

    wicket相关书籍

    6. **国际化和本地化**:Wicket提供了强大的I18N支持,学习如何为不同地区和语言创建多语言应用。 7. **安全性**:理解Wicket的安全特性,如防止XSS攻击和CSRF保护,以及如何集成其他安全框架。 8. **性能优化**:...

Global site tag (gtag.js) - Google Analytics