Apache Wicket

This keeps the application's flow-of-control simple and clear, but can make code reuse in the controller difficult.

The framework does not have knowledge of how components interact with their models, which are treated as opaque objects automatically serialized and persisted between requests.

More complex models, however, may be made detachable and provide hooks to arrange their own storage and restoration at the beginning and end of each request cycle.

Wicket does not mandate any particular object-persistence or ORM layer, so applications often use some combination of Hibernate objects[citation needed], EJBs or POJOs as models.

A Hello World Wicket application, with four files: Basic components like form, links, repeaters, and so on are built-in.