|
Review: Wicket 1.1
by Drew Falkman
Another Java Web framework? Seriously? Well yes, actually. And what's more, a bunch of developers like it. A lot. Kevin Taylor, a well-known Java blogger, posted a survey to find out what frameworks people were using. Cocoon? Struts? Tapestry? Turns out the most popular answer was a relatively new open source framework: Wicket.
Introduction
Why do we need another Web framework for Java? Well, the developers at Wicket (as well as Wicket proponents) say that Wicket is a unique combination component model and easy HTML interface. They claim that Wicket offers:
- Simplified state management with friendly back-button interaction.
- Easy HTML integration with clean code separation.
- IDE flexibility: HTML users use Dreamweaver or similar tool, Java developers build and unit test with their favorite IDE.
- Easy code reusability.
The Framework
The first question is: how is this framework structured? In a nutshell, building a Wicket application is done by creating a Java class with the same name as it's brother HTML file. Inside the HTML file, you utilize the wicket namespace to assign identifiers to HTML elements (wicket:id). This links HTML elements (such as labels or HTML form elements) to Java, so these elements can then be accessed programmatically in your Java class. Note that there are no other cumbersome tags or scripting languages to embedd in your HTML code, and HTML documents can be named simply with .html. Note that some items will require using additional wicket elements in a separate file. However, this is nothing like JSP and you will never have scripting blocks anywhere in your HTML pages. Additionally, you will create other simple Java classes to handle your data models.
Ultimately, a framework is judged on three main points: ease of the development environment, performance, and offered toolsets. For the environment, you'll have to judge for yourselfthis review provides a brief introduction to help you decide. The primary issue in regards to Wicket application performance will likely be in Wicket's state management process, which involves mapping a number of objects to users' sessions. In larger, high usage sites this could be an issue, but Wicket will support clustering and if needed, you can create your own session-handling mechanisms. Finally, the next section takes a look at what toolsets are available.
Features
Wicket provides for a number of development tasks out of the box. In addition, Wicket is designed for reusability, so as the framework evolves it should hopefully be relatively easy to find additional tools and applications to plug in with little or no effort. Out of the box, you will get:
- Page Management: This is supported insofar as the browser's back button should always return the user to the state in which they left the page. This is because page objects are stored in the user's session.
- Components: These are extendable and reusable
- Dynamic HTML Attribute Modification: Using the wicket:id, you can change the values of any HTML tag's attributes.
- Flexible Modeling: Data models can be persistent and utilize JDO or Hibernate. Additionally, when models are being used, they can be bound to persistent data and then later reset to reduce the size of the object.
- Form Validation and Data Conversion: Both can be done using built-in or custom logic.
- Dynamic Images: can be created quickly and easily using a paint method.
- Custom Form Elements: Elements such as paginated list viewing and a tree component are included.
- Localization Support
- AJAX Support: AJAX is a way of eliminating entire page loads by making server calls in JavaScript.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|