Apache Wicket 发布了开源的 6.0.0 版本,以及面向 Java web 应用程序框架的组件。这个版本号让人有点困惑,因为上次发布的是 1.5 ,在使用中,Wicket 只是在语义版本上有了一些提升。版本号中的第一位代表公共 API 上的变化大小,中间位的数字代表在功能上向下兼容的情况,最后一位数字代表补丁或 bug 的修复情况。
声明中描述了大部分的变化,更多的细节可查阅迁移指南。值得一提的是,虽然上一个版本花了两年多来研发,但 6.0.0 版本的发布则不到一年的时间内发布。这可能预示着 Wicket 在未来会加快发布的频率。
此次发布的 Wicket 版本中的重要变化如下:
- 内置支持时下流行的 jQuery JavaScript 库
- 用 JavaScript 事件来绑定注册,而不是使用 HTML 的内联属性
- 要求最低 Java 6 的支持
- 更好的符合 JPA
- 包重组使之更好支持 OSGI
- 可在 Wicket 资源间定义依赖。
- 开始对 websockets 提供试验性支持,同时集成 Twitter Bootstrap
- AJAX 功能、错误信息反馈、表单验证等几个方面有所提高
在 Wicket 6.0 版本以前,都是通过定制代码来支持AJAX(wicket-ajax.js 和 wicket-event.js),这导致在解决浏览器兼容性上一直是个问题。因为jQuery 在跨浏览器的JavaScript 脚本中已经有了良好的表现,Wicket 团队决定用jQuery 库替换此功能。这意味着Wicket 代码现在可以专注于实际的业务逻辑,而不是解决当前Web 浏览器层面的问题。注意jQuery 只是当前Wicket 公共API 的一种实现。理论上来讲,同样可用另外的JavaScript 库重新实现相同的API。
接下来的改进是将Javascript 事件与页面中的web 元素绑定。此前,JavaScript 事件是直接写到onclick 或onsubmit 属性中。这种方法并不理想,因为他们不能被其它事件监听器取消。现在所有回调函数都被注册为DOM 事件,因为DOM 事件支持更灵活的配置。
Wicket 1.4 至少需要 Java 5 支持。Wicket 1.5 需要额外的 servlet 容器来支持 2.5 版本的 servlet-api 规范。相对于目前的 Wicket 来说则最低需要 Java 6 支持,使用 Wicket 6 或许也可促使大家升级自己的 Java 版本。
在 IDataProvider 中的 iterator 方法以及其他持久化方法中,参数类型由以前的 int 替换为 long ,以此来提供对大数值的支持。
修改了几个包的名字以满足 Wicket 在 OSGI 容器里的使用。这是名称更改的清单。Wicket 资源现在支持从其他资源进行依赖。以前每个资源管理各自的依赖,而现在则将权限上交至Wicket 本身。为了在他们之间传递引用,依赖关系需按正确的顺序解析。最后,这个版本的Wicket 提供了 Websockets 的实验性支持(这意味着 API 并不稳定)。
欲了解更多信息,请访问 Wiki 、参考文档,以及 Javadocs 。如有 bug 和问题可以在 Wicket 问题跟踪器上提出。
查看英文原文: Apache Wicket 6 Released With Integrated jQuery Support
感谢贾国清对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论