欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

wicket学习之ComponentAPI释义

程序员文章站 2022-07-15 15:14:33
...
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().