阅读更多

16顶
0踩

企业架构

原创新闻 Apache Wicket 1.5 正式发布

2011-09-08 09:21 by 正式编辑 hantsy 评论(22) 有10787人浏览

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

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

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

 

<dependency>
    <groupId>org.apache.wicket</groupId>
    <artifactId>wicket-core</artifactId>
    <version>1.5.0</version>
</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:

/**
* Objects that can send events
*/
public interface IEventSource {
     void send(IEventSink sink, Broadcast broadcast, T payload);
}

 
and

/**
* Objects that can receive events
*/
public interface IEventSink
{
    /**
     * Called when an event is sent to this sink
     */
    void onEvent(IEvent&gt; event);
}

 
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:

/**
* Defines the event broadcast type.
*/
public enum Broadcast {
    BREADTH,
    DEPTH,
    BUBBLE,
    EXACT;
}

 
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:

public class MyComponent extends Component {
    @OnEvent
    private void onUserAdded(UserAddedEvent event) {...}
}

 
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:

 

// component that always adds itself to the ajax response
public class MyComponent extends Component {
    public void onEvent(IEvent event) {
        if (event.getPayload() instanceof AjaxRequestTarget) {
            ((AjaxRequestTarget)event.getPayload()).add(this);
         }
    }
}
16
0
评论 共 22 条 请登录后发表评论
22 楼 chen0214xi 2012-08-31 11:30
请问下  1.5里取HttpServletRequest该怎么取?
21 楼 189008 2011-09-11 11:08
组件内部事件机制 还没有看过,应该是1.5的新功能
20 楼 189008 2011-09-11 10:54
hantsy 写道
189008 写道
花了差不多两天时间,将不兼容代码修改过来,升级后发现ModelWindow在Firefox6.0.1上不会弹出来,其它问题暂时没发现。

据说性能做了改进,不知道是那些方面,没看到介绍内容。

为什么不把升级过程写出来。
以前一个项目做过 Wicket 1.3 的Research,最终没采用。最近两年几乎都是用 JSF。


升级时按照wicket官方的升级说明文档https://cwiki.apache.org/WICKET/migration-to-wicket-15.html,升级后基本兼容。

遇到的几个问题,还为解决:
1.getRequestCycle().getResponsePageClass(),1.5此方法没了,还没有找到替代方法;
2.inputStream = reference.getResource().getResourceStream().getInputStream(); 原来用过此方法,现在getResourceStream()没有了;
3.debug模式下,发现修改html文件不会自动载入变更后的,需要重启应用;配置和1.4一样;
4.modalwindow在火狐中不能正常探出显示,还在找到原因;同样的代码1.4可以;
19 楼 hantsy 2011-09-09 19:38
189008 写道
花了差不多两天时间,将不兼容代码修改过来,升级后发现ModelWindow在Firefox6.0.1上不会弹出来,其它问题暂时没发现。

据说性能做了改进,不知道是那些方面,没看到介绍内容。

为什么不把升级过程写出来。
以前一个项目做过 Wicket 1.3 的Research,最终没采用。最近两年几乎都是用 JSF。
18 楼 hantsy 2011-09-09 19:36
shuaiji 写道
很自豪的说,我公司的架构师 就是wicket 作者 Jonathan Locke

这么幸运
17 楼 189008 2011-09-09 19:00
花了差不多两天时间,将不兼容代码修改过来,升级后发现ModelWindow在Firefox6.0.1上不会弹出来,其它问题暂时没发现。

据说性能做了改进,不知道是那些方面,没看到介绍内容。
16 楼 hlylove 2011-09-09 15:21
hantsy 写道
兼容性比 Tapestry 肯定好些,以前项目中用了t4 , T5 后就没再用 Tapestry。

我可不敢用Tapestry作项目了,没几个人会。
15 楼 hantsy 2011-09-09 12:53
兼容性比 Tapestry 肯定好些,以前项目中用了t4 , T5 后就没再用 Tapestry。
14 楼 189008 2011-09-09 12:35
peak 写道
目前估计还稳定不下来,多出几个版本再考虑吧


已经开发了将近2年,版本发布还是比较严谨的,可以使用。

已经开始升级,接口改动较大,不兼容代码还是比较多的
13 楼 hantsy 2011-09-09 11:30
kjj 写道

有兴趣的人多着呢,没必要在这里装牛B,你用啥代表不了你多牛!!!!!!!


没你会装牛B行了吧。

不知道哪一句话触到你的G点,反应这么强烈。
12 楼 kjj 2011-09-09 10:43
hantsy 写道
aninfeel 写道
并不是学习曲线的问题,而是与通用知识jsp、html、javascript结合的问题。一个懂html、javascript(jquery等也行)的人,只要学习struts很小一部分的功能,就能实现各种网站功能。而如果换成wicket、jsf、tapestry一类的,要用javascript做特殊效果的话,还要学习这些框架的那一套(struts也有一套ajax方法,但它不强制你使用),对这些框架的功能不理解个90%以上很难用它来做东西(struts 50%就够了),这也是这些框架少人用的原因吧。


从06年开始,我已经对基于 Action 没有什么太大的兴趣,如果非要使用使用基于 Action 的框架,我会选择 Stripes, Spring 3.x MVC,相对而言, Struts 2 太繁琐了,对最新的标准支持力度显然不够,如jsr303 ,jsr299, jsr330, 而 Spring MVC 对 jsr330, jsr303 支持得非常好,另外一个就是 Spring 3 MVC 对 REST 的支持非常不错。

从世界一些流行的趋势(自己从linkedin和国际上一些项目交易网站查看),可以看出,JSF,GWT 应该是目前最流行的框架(需求应该 Struts 4到5倍以上),基于组件的 Tapestry, Wicket 不多见,但也有,Struts 慢慢淡出视野了(主要是一些印度的项目可能还在用,欧美的项目很少要求用 Struts 的)。



有兴趣的人多着呢,没必要在这里装牛B,你用啥代表不了你多牛!!!!!!!
11 楼 shuaiji 2011-09-09 09:20
aninfeel 写道
并不是学习曲线的问题,而是与通用知识jsp、html、javascript结合的问题。一个懂html、javascript(jquery等也行)的人,只要学习struts很小一部分的功能,就能实现各种网站功能。而如果换成wicket、jsf、tapestry一类的,要用javascript做特殊效果的话,还要学习这些框架的那一套(struts也有一套ajax方法,但它不强制你使用),对这些框架的功能不理解个90%以上很难用它来做东西(struts 50%就够了),这也是这些框架少人用的原因吧。

Struts 上手快是真的。我刚入行第一个项目就是struts,当时都不知道什么叫J2EE,上来就直接开发了。
10 楼 shuaiji 2011-09-09 09:11
很自豪的说,我公司的架构师 就是wicket 作者 Jonathan Locke
9 楼 jansel 2011-09-09 09:07
Wicket 不错的框架,组件化的框架。

不过也没有必要抨击Struts2,毕竟Struts2从扩展性、易用性上还是很不错的。
8 楼 vipyami 2011-09-08 22:28
我现在写web,只用servlet,javascript(jquery,jqueryui),jsp,其他一概边上凉快去
7 楼 hantsy 2011-09-08 20:35
aninfeel 写道
并不是学习曲线的问题,而是与通用知识jsp、html、javascript结合的问题。一个懂html、javascript(jquery等也行)的人,只要学习struts很小一部分的功能,就能实现各种网站功能。而如果换成wicket、jsf、tapestry一类的,要用javascript做特殊效果的话,还要学习这些框架的那一套(struts也有一套ajax方法,但它不强制你使用),对这些框架的功能不理解个90%以上很难用它来做东西(struts 50%就够了),这也是这些框架少人用的原因吧。


从06年开始,我已经对基于 Action 没有什么太大的兴趣,如果非要使用使用基于 Action 的框架,我会选择 Stripes, Spring 3.x MVC,相对而言, Struts 2 太繁琐了,对最新的标准支持力度显然不够,如jsr303 ,jsr299, jsr330, 而 Spring MVC 对 jsr330, jsr303 支持得非常好,另外一个就是 Spring 3 MVC 对 REST 的支持非常不错。

从世界一些流行的趋势(自己从linkedin和国际上一些项目交易网站查看),可以看出,JSF,GWT 应该是目前最流行的框架(需求应该 Struts 4到5倍以上),基于组件的 Tapestry, Wicket 不多见,但也有,Struts 慢慢淡出视野了(主要是一些印度的项目可能还在用,欧美的项目很少要求用 Struts 的)。


6 楼 aninfeel 2011-09-08 20:19
并不是学习曲线的问题,而是与通用知识jsp、html、javascript结合的问题。一个懂html、javascript(jquery等也行)的人,只要学习struts很小一部分的功能,就能实现各种网站功能。而如果换成wicket、jsf、tapestry一类的,要用javascript做特殊效果的话,还要学习这些框架的那一套(struts也有一套ajax方法,但它不强制你使用),对这些框架的功能不理解个90%以上很难用它来做东西(struts 50%就够了),这也是这些框架少人用的原因吧。
5 楼 peak 2011-09-08 14:19
目前估计还稳定不下来,多出几个版本再考虑吧
4 楼 grandboy 2011-09-08 13:48
性能怎么样?
3 楼 zuiyanwangyue 2011-09-08 11:42
业务驱动的权限管理框架limiton-1.0.0-b1发布,详情见官方网站
http://www.limiton.org/

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Apache Wicket 1.5发布

    本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2011/11/wicket_1_5近日,开源、面向组件的Java Web应用框架Apache Wicket 1.5发布了。主要的变化有:支持4个新的HTML 5组件...

  • apache wicket_教程– Apache Wicket:有趣的Web框架

    apache wicket 选择Java技术堆栈时,不乏多样性。 为了摆脱“滚动自己的[一切]”的想法,以至于许多公司都沦为猎物,而“一切必须成为标准”的哲学,则对每一层都采取了各种各样的方法过去几年中,Java体系结构如...

  • 终于搞定WICKET1.5的在TOMCAT下的filterStart错误

    搞个HELLO WORLD DEMO 就那么麻烦! 从官方网站web.xmlhttp://wicket.apache.org/learn/examples/helloworld.html折腾了1周时间,搞得性情不好. 主要wicket中文开发指南是基于1.20的 而下载的是1.4

  • Wicket 1.5和Tapestry 5比较

    Struts框架一度很流行,现在还有很多开发者使用Struts,因为处理遗留代码和...2.0即将发布,不过本文要讨论的是另外两个基于组件框架:Wicket 1.5和Tapestry 5。  很快,Apache基金会将会发布两个有趣的框架新...

  • Apache Wicket 6发布,支持jQuery

    Apache Wicket发布了开源的6.0.0版本,以及面向Java web应用程序框架的组件。这个版本号让人有点困惑,因为上次发布的是1.5,在使用中,Wicket只是在语义版本上有了一些提升。版本号中的第一位代表公共API上的变化...

  • apache-wicket 学习笔记(一) maven依赖与集成spring

    一) [url=http://wicket.apache.org]官方网站[/url]发布的新消息wicket6.0已经发布了,上一个版本是1.5。可见官方直接升级了主版本号。 [code=&quot;xml&quot;] org.apache.wicket wicket-core 6.0.0 ...

  • Wicket 1.5.3 发布

    Wicket 团队发布了 Wicket 1.5 系列的第三个维护版本,包括 25 个 BUG 修复和 15 处改进。 Subversion tag: http://svn.apache.org/repos/asf/wicket/releases/wicket-1.5.3 变更记录: ...

  • Apache Maven

    绝大部分Maven用户都称Maven是一个"构建工具":一个用来把源代码构建成可发布的构件的工具。 构建工程师和项目经理会说Maven是一个更复杂的东西:一个项目管理工具。那么区别是什么? 像Ant这样的构建工具仅仅是...

  • Web显示层技术评估

    在正式开始之前,先说明一下数据寻址的概念。 数据寻址,意思是数据访问、属性获取等。主要包括两类风格。 (1) OGNL Style http://www.ognl.org/ OGNL (Object Graph Navigation Language)如此著名和深入人心,以...

  • Geoserver Web界面开发

    2012 暑假 山西农业大学  左脑 找了很长时间,都没有合适的资料,还是看官方的开发文档吧。今天针对WEB 用户界面这部分做了一下全文翻译: Geoserver Web用户界面...使用Wicket框架,使程序员就像使用Swing编程

  • java 开发最新教程

    在2007年1月成功地发布了Groovy 1.0之后,下一个主要的里程碑1.5版已经发布。在1.5版中有一些有趣而新颖的地方,我们会在这篇文章中考察这些特性。语言主要增强了对于Java 5特征的支持,包括注解、泛型和枚举,这...

  • Java web层框架,你在用哪个?

    现在java web框架非常多,林林总总,让很多人不知道选择那个好:JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket,他们都是各有千秋,面对各种问题,八仙过海,各显神通。这里就小话一下他们的优缺点。 JSF...

  • 智慧旅游景区解决方案PPT(50页).pptx

    智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。

  • 智慧旅游实景三维智慧景区建设方案PPT(70页).pptx

    智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。

  • 基于深度学习实现的半监督学习例子.zip

    深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。

  • 关于APx测试耳机音频的参数设置及步骤 关于APx测试耳机音频的参数设置及步骤

    关于APx测试耳机音频的参数设置及步骤 关于APx测试耳机音频的参数设置及步骤

  • jQuery背景可滑动的导航菜单代码,鼠标经过导航时导航背景可滑动,兼容主流浏览器

    jQuery背景可滑动的导航菜单代码,鼠标经过导航时导航背景可滑动,兼容主流浏览器 使用方法: 1、引入reset.css、index.css、jquery-1.7.2.min.js库文件,及jquery.movebg.js插件 2、在文件中加入 代码 开始 代码 结束 区域代码 3、移动的滑动可根据需要自由修改外观

  • Matlab实验指导书.doc

    Matlab实验指导书.doc

  • S7-1200 计数器介绍

    PLC

Global site tag (gtag.js) - Google Analytics