摘要:Wicket 提供了一种面向对象的方式来开发基于 Web 的动态 UI 应用程序。由于 Wicket 是纯 Java? 和 HTML 代码,所以您可以充分利用自己的 Java 知识来基于 Wicket 编写应用程序,这会极大减少您的开发时间。本文概述了 Wicket 并介绍了如何利用 Wicket 以一种无干扰的简化方式来快速构建基于 Web 的应用程序。
概览
Wicket 是最近才启用的 Java Web 开发框架。它是一种开源、轻量、基于组件的框架,这让 Wicket 迅速从开发 Web 应用程序的常用方法中脱颖而出。Wicket 力图通过支持基于纯 HTML 的模板来清晰地界定 HTML 页面设计人员和 Java 开发人员之间的角色界线,此模板可使用任何的 WYSIWYG HTML 设计工具构建,并且经稍许修改就可以具备动态特征。
与其他框架类似,Wicket 也构建在 Sun Microsystems 的 servlet API 之上。不过,与基于 Model-View-Controller (MVC) 模型(比如 Struts)的其他框架不同,Wicket 可以让您从处理请求/响应对象的任务中解脱出来,而这些任务是诸如 servlet 这类技术所固有的。去掉这些任务后,Wicket 让您能将精力更多地集中于应用程序的业务逻辑。
作为一个 Wicket 开发人员,应该考虑构建有状态的可重用组件,而不是构建用来处理请求/响应对象的控制器并且同时还要担心多线程问题。与构建控制器或动作类相反,您创建的是一个页面,在这个页面上放置组件,然后定义每个组件如何响应用户输入。
HelloWorld 示例
要真正展示使用 Wicket 开发基于 Web 的应用程序的简便性,不妨先来开发一个简单的 “Hello World” 示例。在 Wicket 开发一个动态页面通常只会涉及创建如下两个工件:
● HTML 模板
● Java 页面类
Wicket 的 Java 页面类
Java 页面类是一个 Wicket 约定,不能与 JavaServer Pages (JSP) 相混淆。在这种上下文环境中,Java 页面类只是处理 Web 页面上动态内容的简单 Java 代码。在本例中,就是对应于 HelloWorld.html 的 HelloWorld.java。
注意:必须确保实际的 HTML 文件和页面类名称是相同的(例如,HelloWorld.html 和 HelloWorld.java)而且二者均处在 CLASSPATH 上的相同位置。而且最好要将二者置于相同的目录内。
HTML 模板(HelloWorld.html)
清单 1 中所示的是 HelloWorld 示例的模板文件。
清单 1. HelloWorld.html
<html>
<head><script type="text/javascript" ></script></head>
<body bgcolor="#FFCC00">
<H1 align="center">
<span wicket:id="message">Hello World Using Wicket!</span>
</H1>
</body>
</html>
要制作动态的Web页面,需要确定页面的动态部分并告知Wicket 使用组件来呈现这些部分。在清单1中,我想要获得动态的消息,于是我使用了span 元素来标记该组件,使用wicket:id 属性来标示该组件。