Component是Wciket中所有component的最高级抽象。具有如下特性:
关于component id:所有的组建都需要有一个非空的Id,供getId()方法调用,在MarkupContainer 容器中,这样的ID需要具备唯一性,
在页面层次和全局的层面,ID没有要求唯一。
关于继承:一个组建通过调用getParent()方法可以得到他的父组建,如果一个组件是MarkupContainer的实例,他可以含有子组件。
通过这样的方式,在页面维护的组建链上,可以包含很多组建。
关于组建路径:在页面中(页面作为继承链的根),组建的路径由一些简单的点分隔级联路径构成。例如:“a.b.c”表示了a组建位于b组建中,
b组建位于c组建中。组建的路径可以通过调用getPath()得到,这样得到的路径是一个绝对路径,以page的id号开头。所有的页面在session中的
pagemap中有一个Id,所以在组建的绝对路径中会包含这么一个页面的id。如果要获得组建的相对路径可以调用getPageRelativePath()。
关于生命周期:组建由下面几个周期过程:
1、Construction:组建通过java 的new 关键字构建,如果组建是MarkupContainer的一个实例,通常还会调用add()方法,添加childcomponet
2、Request Handling:请求处理,wicket中通过wicketFilter处理用户的请求。wicket使用application,session,request,response
处理组建,更新组建model,返回页面。application,session,request,response这一系列对象,保存在RequestCycle中,
通过getRequest(), getResponse() and getSession()调用。
3、Listener Invocation:监听调用,如果组建上注册了监听器,在求情处理的过程中,监听器会被调用,监听器允许用户处理相应事件。
尽管wicket中可以指定任意的监听器,监听器可以通过继承监听器类,或者implements监听接口实现。但是这种方法不建议使用。
相反的,监听器是通过逻辑事件来路由的,通过从写监听器的方法,调用用户的代码。
4、onBeginRequest:The onBeginRequest() method is called.
5、Form Submit:如果组建是FormComponent,并且组建被提交,组建通过调用FormComponent.validate()来验证组建model的有效性。
6、Form Model Update:If a valid Form has been submitted and the Component is a FormComponent, the component's model is updated by a call to FormComponent.updateModel().
7、Rendering:组建通过调用render()方法,返回请求结果。
8、onEndRequest () - The onEndRequest() method is called.
关于组建model:组建主要的职责是,使用model(通过setDefaultModel(IModel model)设置,getDefaultModel()获取)在适当的页面标记语言中,呈现返回结构。
另外,表单组建知道基于用户的输入更新组建的model。在IModel 接口中,提供了更实际的两个方法,调用model数据,
getDefaultModelObject()和getDefaultModelObjectAsString()。
关于可见性:组建通过setVisible方法(值来源于方法isVisible)指定组建在返回中可见性。
关于Page :通过调用getPage方法可以获得组建所在的页面引用,如果组建没在一个页面中,抛出IllegalStateException。一个等效的方法findPage
,可以指定特定的环境,查找组建所在的页面,没有则返回null。
关于会话:组建所在的会话,通过getSession获得。
关于Locale:getLocal获得
关于String Resources:通过应用的Localizer,组建可以拥有字符资源。通过getString(String key) and getString(String key, IModel model)
在组建中能够方便的访问资源。
关于样式:getStyle获取组建的样式。
关于变化(Variation ):不清楚
关于属性修改(AttributeModifiers ):如果你需要在程序中维护与组建对应的标记,你可以添加AttributeModifiers来修改标记的属性。
关于Application, ApplicationSettings and ApplicationPages:
The getApplication() method provides convenient access to the Application for a Component via getSession().getApplication().
The getApplicationSettings() method is equivalent to getApplication().getSettings().
The getApplicationPages is equivalent to getApplication().getPages().
关Feedback Messages:在组建中提供了与feedBack相关的一些方法:debug(String), info(String), warn(String), error(java.io.Serializable) and fatal(String)
关于Versioning :通过setVersioned()方法指定组建知否需要版本控制。
关于ajax支持:Components can be re-rendered after the whole Page has been rendered at least once by calling doRender().
分享到:
相关推荐
wicket 6.x api.chm wicket帮助文档
【实战Wicket学习总结】 Wicket是一个Java Web应用程序框架,以其独特的组件模型和强大的MVC设计而备受赞誉。本文将基于三年的Wicket项目经验,深入探讨Wicket的关键特性和在实际开发中遇到的问题及解决方案。 1. ...
有关wicket开发的api手册。chm版本,方便,全面,准确。
Wicket的核心功能之一是作为页面布局管理器,允许开发者通过继承已有的标记来实现页面的头部、页脚、左侧菜单、内容等部分。此外,Wicket支持页面继承,可以有效地重用页面布局和逻辑。在页面标记方面,Wicket使用了...
1. **学习曲线平缓**:Wicket 的API简洁明了,使得新手能够快速上手。 2. **强大的Ajax支持**:无需深入了解JavaScript,即可创建丰富的Web交互。 3. **良好的社区支持**:Wicket 社区活跃,有许多插件和第三方库可...
这个版本可能包括了Wicket框架的源码、API文档、示例程序、库文件等。使用这个版本,开发者可以了解和学习Wicket 6.x系列的特性和使用方法,同时也可以直接在项目中引用这些库文件进行开发。 总结来说,这个压缩包...
这本书通常会提供丰富的示例代码,帮助读者理解 Wicket 的API,并且可能还会讲解如何与其他技术(如Spring或Hibernate)集成,以构建更完整的应用程序。 通过阅读这些书籍,开发者可以掌握以下关键知识点: 1. **...
### Wicket 学习知识点详解 #### 一、Wicket框架简介 Wicket是一个用于创建高度动态、交互式Web应用程序的Java服务器端框架。它强调简单性和灵活性,并且支持组件化开发模式,允许开发者像使用桌面应用开发一样...
- **低学习曲线:** 相比其他框架,Wicket 提供了一个更直观的 API 和简洁的文档,使得新用户能够快速上手。 - **规则配置:** 减少了对 XML 配置文件的依赖,简化了开发流程。 - **Ajax 支持:** 内置了对 Ajax ...
在 Wicket Maven 库中,开发者可以找到 Wicket 相关的 JAR 包和其他依赖,如 Servlet API、JDBC 驱动等,这些都通过 Maven 的坐标(groupId, artifactId, version)进行引用。 3. **Wicket 版本管理**: Wicket 有多...
如链接所示,ITEYE博客上有关于Wicket的教程,这是学习Wicket的一个好起点。此外,官方文档、社区论坛和Stack Overflow等平台也是获取帮助和学习的好去处。 在压缩包"webLib"中,可能包含了Wicket应用的Web库文件...
这个“wicket简单实例”是为了帮助初学者理解Wicket的工作原理和基本操作,通过运行这些示例,你可以深入学习Wicket的核心特性。 1. **Wicket_link**: 这个示例展示了如何在Wicket应用中创建链接。Wicket的`Link`...
- **Struts概述**:Struts是一个流行的MVC框架,但相比Wicket来说,它的配置更为复杂,学习曲线较高。 - **Tapestry概述**:Tapestry也采用了组件化的方式,但在灵活性和性能方面,Wicket表现更佳。 - **ASP.NET概述...
此外,学习如何利用Wicket的会话管理和URL映射功能也是很重要的。 通过比较Wicket和Struts,我们可以看到Wicket更加注重代码的简洁性和可测试性,而Struts则更加强调配置和流程控制。理解这两种框架的优缺点可以...
最后,Wicket API还包括一系列的辅助类和工具,如`AjaxRequestTarget`用于处理异步请求,`FormComponent`类用于处理表单输入,以及各种内置的验证和表单反馈机制。开发者还可以利用Wicket的扩展机制,如行为...
Wicket 与其他Web框架的不同之处在于它采用了组件驱动的开发模式。每个HTML元素都可以与Java对象对应,这些对象称为组件,它们负责处理用户的交互事件和呈现页面。这种设计使得Wicket能够轻松地实现页面状态管理,...
**Wicket HelloWorld程序详解** ...Wicket的强大之处在于它的组件模型和强大的数据绑定机制,使得开发动态、交互性强的Web应用变得更加简单和直观。对于初学者来说,理解这些基础知识是进一步学习Wicket的关键。