Wicket 是什么?简单点说,它就是一个基于Java 的Web 开发框架,与Struts,WebWork,Tapestry 相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了XML 等配置文件的使用),学习曲线较低(开发方式与C/S 相似),更加易于调试(错误类型比较少容易,而且容易定位)。如果 你不对微软并不反感,可以把它看作Java 平台上的ASP.NET。 Wicket 现在是Sourceforge 上一个非常活跃的项目,开发源码基于Apache 协议(也是最宽松,对商业最友好的的源码协议),项目位于http://wicket.sourceforge.net,另外它还有一个独立的域名网站http://www.wicketframework.org/。最新的消息则是,Wicket 已经成为Apache 孵化器中一个项目,可以通过http://incubator.apache.org/projects/wicket.html 来访问。但SourceForge 上的网站仍然可以访问。Wicket 出现时,著名的J2EE 网站TSS(即http://www.TheServerSide.com,以后简称TSS),对该项目也进行了讨论,有一段旷日持久的论战(地址:http://www.theserverside.com/news/thread.tss?thread_id=28162:),论战主力当然就是Wicket 的主要作者Jonathan Locke 和Tapestry 的作者Howard Lewis Ship ,争论的内容十分广泛,从URL 的格式到系统结构,从扩展性到界面开发,如果有时间的话,我尽量将其中部分内容翻译过来,还是很精彩的。(TSS 上很多的讨论都非常精彩,如果英文好的话,建议经常上去看看,国外的牛人就是多啊。有时候我也觉得很奇怪,这些人都不用睡觉的吗,看他们的帖子,完全覆盖了24 小时,感觉他们的老板真是宽容啊)。Wicket 的作者中有几个是原Sun 公司Swing 小组的开发人员(现在可能大部分已经不 是了),因此Wicket 的框架中带有浓厚的C/S 色彩。而他们的开发计划中,还包括了Swing,Flash 平台的支持,也就是说使用Wicket 不仅可以可以输出Html,而且可以支持Swing 和Flash,不过和朋友经过讨论后,觉得这个计划看起来有一点不切实际,毕竟 Html,Swing,Flash 之间的差别还是很大,恐怕想要无缝移植,还是有点难度的。单是一个JavaScript,恐怕就够头痛了。 Wicket 带有强烈C/S 结构的UI 色彩,这一点有助于美工和程序人员的分工,与Delphi 的开的方式非常类似(Delphi 使用Frm 文件保存UI 控件的定义,而用.pas 文件存储代码,从而对控件进行操作)。Wicket 则是使用Html 描述UI,并将具有特殊标记的Html 元素定义为UI 控件,在java 文件中则直接使用代码操作这些UI 控件,控制其输出面向构件成长社区http://gocom.primeton.com 独家首发 Wicket 开发指南SCA/SDO/SOA/Eclipse/BPEL/EOS 技术交流 @gocom.primeton.comgoCom 就是一起分享一起成长及行为,样式等。这一点和Tapestry,以及.NET 平台上的ASP.NET 极为相似,也怪不得与Tapestry 的作者争论了这么久,毕竟两者的用户群有很多的重复。其实从结构上看来,无论是Tapestry,ASP.Net,Wicket 估计都借鉴了Applet 平台上的WebObjects,还有Delphi。(不要忘了,Delphi 的创建者Anders Hejlsberg 就是.net 框架的架构师,所以C#和Asp.net 怎么看都带着Delphi 的影子。Wicket 目前最新的版本是1.2.2 版,已经支持了AJAX,但感觉这个框架的发展时间毕 竟还是短了一点,尽管设计思想很不错,但还是有许多问题存在的,包括控件的数量,BUG 较多等,希望2006 年它可以尽快的成熟起来。 ### Wicket 开发指南知识点概览 #### 1. Wicket 概述 - **定义**: Wicket 是一款基于 Java 的 Web 开发框架,与 Struts、WebWork 和 Tapestry 等框架相类似。 - **特点**: - 对 HTML 和代码进行了有效的分离,便于程序员和前端设计师的合作。 - 基于规则的配置,减少了 XML 等配置文件的使用。 - 学习曲线较低,开发方式与 C/S 类似,易于调试。 - 错误类型较少且易于定位。 #### 2. Wicket 社区与版本历史 - **活跃度**: Wicket 是 Sourceforge 上一个非常活跃的项目。 - **开源协议**: Apache 协议,商业友好。 - **官方网站**: http://wicket.sourceforge.net/ 和 http://www.wicketframework.org/ - **最新动态**: Wicket 成为了 Apache 孵化器中的一个项目,可以通过 http://incubator.apache.org/projects/wicket.html 访问。 - **论战记录**: TSS (TheServerSide) 网站上有关于 Wicket 的一段长时间的讨论,参与讨论的主要人物是 Wicket 的主要作者 Jonathan Locke 和 Tapestry 的作者 Howard Lewis Ship。 - **开发背景**: Wicket 的部分开发者来自 Sun 公司 Swing 小组,因此框架设计中带有 C/S 的特点。 #### 3. Wicket 与其他框架的对比 - **Struts**: - 早期流行的 MVC 框架。 - 强调配置和标签库的使用。 - **Tapestry**: - 同样基于组件的框架。 - 更强调组件化的开发模式。 - 在 UI 层面提供更丰富的组件库。 - **ASP.NET**: - 微软提供的 Web 开发框架。 - 与 Wicket 一样,提供了事件驱动和组件化的编程模型。 - **Wicket**: - 基于组件的 Java Web 框架。 - 采用类似于 ASP.NET 的开发模式。 - 支持 HTML 与 Java 代码的分离。 - 提供了较为丰富的组件库和支持 AJAX 的功能。 #### 4. Wicket 的主要特性 - **更纯粹的 Java 和面向对象**: 使用纯 Java 进行开发,支持面向对象的设计原则。 - **分离关注点**: UI 设计与业务逻辑分离,有利于团队协作。 - **安全性**: 内置的安全机制,支持认证和授权。 - **集群支持**: 可以无缝集成到集群环境中。 - **组件复用**: 提供丰富的可复用组件库。 - **数据验证**: 内置表单数据验证功能。 - **Session 安全**: 保证 Session 的安全性和有效性。 - **自定义工厂**: 支持自定义组件和模型工厂。 - **懒加载 Model**: 提高应用程序性能。 - **HTML 属性控制**: 通过 Java 代码控制 HTML 属性。 - **类型自动转换**: 自动处理数据类型的转换。 - **动态图片**: 支持动态生成图片。 - **数据分页**: 提供数据分页功能。 - **树形控件**: 支持树形结构的数据展示。 - **国际化**: 内置国际化支持。 - **单元测试**: 支持单元测试和集成测试。 #### 5. Wicket 的应用场景 - **企业级应用**: 适合开发大型企业级 Web 应用程序。 - **复杂表单**: 需要处理复杂表单的应用场景。 - **多语言支持**: 需要国际化支持的项目。 #### 6. Wicket 的不足 - **发展历史**: 相对于其他成熟框架而言,Wicket 的发展历史较短。 - **组件数量**: 当前提供的组件数量可能不如其他成熟框架丰富。 - **已知问题**: 存在一些已知的 BUG 需要修复。 #### 7. Wicket 的前景展望 - **持续发展**: 随着社区的不断发展和完善,Wicket 正在逐渐成熟。 - **技术支持**: 由于采用了开放源代码的方式发布,获得了广泛的社区支持和技术贡献。 - **未来方向**: 计划支持 Swing 和 Flash 等不同平台,虽然目前看来实现这一目标还存在一定的挑战。 #### 8. Wicket 的配置与开发 - **安装**: 可以通过 Maven 或者手工下载安装 Wicket。 - **开发工具**: 推荐使用 Eclipse 进行开发,需要配置 Eclipse 的相关插件支持。 - **开发步骤**: - 制作 HTML 模板。 - 编写 Java 控制代码。 - 创建 Application 类。 - 使用 web.xml 进行配置。 - **示例**: 提供了一个“Hello World”示例来介绍基本的开发流程。 #### 9. Wicket 的基本结构 - **MVC 架构**: Wicket 采用 MVC 架构,将模型、视图和控制器分离。 - **请求处理**: 请求由框架自动分发至对应的组件进行处理。 #### 10. Wicket 的基本控件 - **信息输出控件**: Label 和 MultilineLabel。 - **容器控件**: Panel、Border 和 Container。 - **链接控件**: Link、ExternalLink 和 PageLink。 - **表单控件**: - 表单控件 Form。 - Button 控件。 - 文本输入 TextField。 - 密码输入 PasswordTextField。 - 多行文本 MultiLineTextField。 - 下拉选择 ComboBox。 - 多选 ListMultiChoice。 - **数据列表控件**: ListView 和 PageableListView。 - **日历控件**: Calendar。 #### 11. 国际化支持 - **资源文件**: 使用资源文件进行国际化支持。 - **多语言**: 支持多种语言版本的界面显示。 #### 12. 总结 Wicket 作为一款基于 Java 的 Web 开发框架,具备诸多优势,如低学习曲线、丰富的组件库、支持 AJAX 等。虽然它的发展历史相对较短,但仍是一个非常有潜力的选择,特别是在需要高效开发且注重团队合作的企业级项目中。随着社区的不断壮大和技术的持续进步,Wicket 有望成为更多开发者的首选框架之一。
- 粉丝: 83
- 资源: 31
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- 1
- 2
前往页