Professional Documents
Culture Documents
Introduction
A lightweight component-based web
application framework for the Java
programming language.
Make developing web-apps simple and
enjoyable with proper mark-up/logic
separation, a POJO data model and a
refreshing lack of XML(configuration).
Powerful, reusable components written with
plain Java and HTML.
History
Originally written by Jonathan Locke in Spring
of 2005.
Version 1.0 was released in June 2005.
An Apache top-level project in June 2007.
Current version is 1.4.5.
Current Status
A comprehensive, mature product being used by
startups, mid-size companies and large
companies (IBM, Amazon, Tom-Tom, Nikon,
VeriSign and others).
Core team is active and global: 16 active core
committers, 3 retired core developers and 50
additional contributors. The community is very
active and helpful.
Two books in circulation and a third to be
published.
Feature List
Swing-like OO Component Model
Pages and Components in Wicket are real Java
objects that support encapsulation, inheritance
and events.
Ease of Development
Use everything about Java and HTML.
Separation of Concerns
Does not mix mark-up with Java code. The
world of HTML and Java are parallel, so UI
designers and Java codes can work
independently.
Feature List (cont’d)
Secure
Secure by default. URLs do not expose
sensitive info and all component paths are
session-relative.
Transparent, Scalable Clustering Support
All Wicket applications will work on cluster
automatically. Provide an effective framework
to easily scale up new and existing
applications.
Transparent Back Button Support
Supports configurable page version mgmt.
Feature List (cont’d)
Reusable Components and Units
Extend existing components with the Java
extends keyword.
Simple, Flexible, Localization Form
Validation
Typesafe Sessions
Eliminate the need to manage HttpSession
attributes by hand.
Detachable Models
Model objects can be very light weighted in
terms of memory and network use.
Feature List (cont’d)
Border Components
Useful for inheritance of common navigational
structures or layouts.
Programmatic Manipulation of HTML Tag
Attributes
Automatic Conversions
Once a Form validates, the model can be
updated using Wicket converters.
Tree Components
Out of box tree components for navigating and
selecting nodes.
Pros of Wicket
Get the benefits of a first class component
model and a non-intrusive approach to HTML. A
significant development advantage.
Most other web frameworks provide non-
existent support in managing server-side state.
Designed to work with POJO persistent
framework such as JDO or Hibernate. Make
database driven web applications easy to write.
Most other frameworks require special HTML
code. JSP is by far the worst offender allowing
Java code directly in web pages.
Pros of Wicket (cont’d)
Ajax (Dojo and Script.aculo.us) in Wicket is
incredibly easy.
Great for Java developers.
Cons of Wicket
Virtually unknown.
Steep learning curve.
Not well documented.
Pros and Cons of Spring
MVC
Pros
Lifecycle for overriding binding, validation, etc.
Integrate with many view options seamlessly.
Inversion of Control makes it easy to test.
Cons
Configurations intensive – lots of XML.
Almost too flexible.
Bare bones: just a MVC framework. No libraries
for Ajax. Have to build infrastructure for Ajax,
redirect after post, popups by yourself.
Pros and Cons of Struts 2
Pros
Simple architecture – easy to extend.
Controller-based or page-based navigation.
Ajax support: Dojo built-in. Plug-in for GWT,
JSON.
Cons
Struts 1 is still in high-demand and widely used.
Struts 2 is gaining ground.
Documentation is poorly organized. Google
results in struts 1.x documentation.
Questions?