设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

Apache Wicket 1.5 正式发布

2011-9-8 16:46| 发布者: 红黑魂| 查看: 2836| 评论: 0|来自: iteye

摘要: Apache Wicket 团队正式发布了 Apache Wicket 1.5, 一个基于组件的开源 WEB 框架。Apache Wicket 1.5 经过两年的开发,与之前版本相比,带来无数的改进。下载地址-----------------------------http://www.apache.o ...

Apache Wicket 团队正式发布了 Apache Wicket 1.5, 一个基于组件的开源 WEB 框架。Apache Wicket 1.5 经过两年的开发,与之前版本相比,带来无数的改进。

下载地址
-----------------------------
http://www.apache.org/dyn/closer.cgi/wicket/1.5.0

如果使用Maven,可以添加下面的代码到 POM 升级到最新版本:

 

Xml代码 
  1. <dependency>  
  2.     <groupId>org.apache.wicket</groupId>  
  3.     <artifactId>wicket-core</artifactId>  
  4.     <version>1.5.0</version>  
  5. </dependency>  
 

值得注意的是,Wicket 的主 artifact ID 更名为 wicket-core。

你必须升级所有的模块(i.e. wicket, wicket-extensions,
wicket-ioc, wicket-spring, etc) 到1.5.0,在使用最新版本,不要混合使用之前的版本。

值得注意的变更
--------------------

这个发布版本中,Wicket 团队对其内部进行了大量的更新。包括:

- 添加了 HTML5 组件: EmailTextField, NumberTextField, UrlTextField and
   RangeTextField

- 全新的组件内事件机制 (下面会解释)

- servlet API 最低版本为 servlet-api 2.5

- 所有的标准的 validators 继承了 Behavior 以便客户端验证

- 删除 IBehavior,AbstractBehavior 标志为过时,现在你应该直接从 Behavior 继承。

- 简化请求生命周期处理,使其更有扩展性

- URL 集中处理

- Wicket’s rendering 代码大大简化

- 改进了浏览器缓存支持

- ClientSideImageMap 代替了旧的 ImageMap

- Better support for running behind proxies with x-forwarded-for header

- Request cycle listeners  使集成框架到你的 Wicket 应用中变得更加简单

-  一致的命名: 方法名的 Javascript 更名为 JavaScript

- 切换到 HTTPS 很简单,只配置一个新的 root mapper,让 Wicket 能够识别 HTTPS,在页面添加  @RequireHttps

更详细的变更和改进包含在升级指南中.

组件内部事件机制
----------------------

Wicket 1.5 offers a simple, yet flexible, way for component to communicate
with each other in a decoupled manner. The two major interfaces that
facilitate this are:

Java代码 
  1. /** 
  2. * Objects that can send events 
  3. */  
  4. public interface IEventSource {  
  5.      void send(IEventSink sink, Broadcast broadcast, T payload);  
  6. }  


and

Java代码 
  1. /** 
  2. * Objects that can receive events 
  3. */  
  4. public interface IEventSink  
  5. {  
  6.     /** 
  7.      * Called when an event is sent to this sink 
  8.      */  
  9.     void onEvent(IEvent&gt; event);  
  10. }  


The classes that implement these interfaces, and can thus participate in the
event mechanism are: Component, RequestCycle, Session, and Application.

The mechanism allows for different event broadcast methods defined here:

Java代码 
  1. /** 
  2. * Defines the event broadcast type. 
  3. */  
  4. public enum Broadcast {  
  5.     BREADTH,  
  6.     DEPTH,  
  7.     BUBBLE,  
  8.     EXACT;  
  9. }  


There is an example in wicket-examples which demonstrates the usage of this.

Applications can register custom event dispatchers in FrameworkSettings; the
dispatchers can be used to build custom event delivery mechanisms. For example
a custom IEventDispatcher mechanism can route events to annotated methods, for
example:

Java代码 
  1. public class MyComponent extends Component {  
  2.     @OnEvent  
  3.     private void onUserAdded(UserAddedEvent event) {...}  
  4. }  


where UserAddedEvent is the event payload object.

The default Component#onEvent method will be called even if custom dispatchers
are registered.

A default event is raised whenever Wicket begins to create an AJAX response.
The payload of the event is the AjaxRequestTarget used for event. Sample
implementation:

 

Java代码 
  1. // component that always adds itself to the ajax response  
  2. public class MyComponent extends Component {  
  3.     public void onEvent(IEvent event) {  
  4.         if (event.getPayload() instanceof AjaxRequestTarget) {  
  5.             ((AjaxRequestTarget)event.getPayload()).add(this);  
  6.          }  
  7.     }  
  8. }  

酷毙
2

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (2 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部