Getting started
- Why component-oriented What a component-oriented framework does differently from request-based MVC frameworks, what Wicket gains from it, and what it costs.
- Best practices The habits that keep a Wicket application easy to change and to test, each with the reason it follows from how Wicket works.
Components and markup
- Markup inheritance How a page or panel subclass inherits its parent's HTML along with its Java code, how wicket:child and wicket:extend merge the two, and when panels are the better tool.
- How markup becomes components How Wicket loads, parses and caches markup, and how Wicket tags turn into auto components that you never add yourself.
Models
- Models and component data Why a component reads its data through a model, what happens to that data between requests, and why wrapping an entity in Model goes wrong.
Forms
- How a form is processed The order in which Wicket checks, converts, validates and stores submitted input, and why a form updates all its models or none.
Ajax and JavaScript
- How Wicket Ajax works What happens between a click in the browser and the updated components on the page, and why components need a markup id.
WebSockets
- How native WebSockets work How Wicket connects a page to a WebSocket, routes messages to components, pushes updates from other threads, and what that means for sessions and locking.
Links and URLs
- Redirects after a request Why Wicket answers a form submit or link click with a redirect, how the three render strategies differ, and what that means for stateless pages and clusters.
Resources
- How Wicket serves resources What resources and resource references are, why components carry their own CSS and JavaScript, and how Wicket gives every file a cacheable URL.
Pages and state
- Stateful and stateless pages Why Wicket keeps pages between requests, how page versions serve the back button, and what a stateless page gives up and gains.
- How pages are stored How Wicket finds the page for a request, and the chain of stores that keeps stateful pages in the request, the session and on disk.
Requests and lifecycle
- What happens during a request How Wicket turns an HTTP request into a request handler, runs it, and cleans up afterwards, and why it is built that way.
Localization
- How Wicket localizes Where the locale of a page comes from, why texts live in properties files next to the components that use them, and why the page can override its panels.
Security
- How Wicket keeps applications secure What Wicket defends against by default (escaping, a strict CSP, stateful URLs and encryption) and what it leaves to your application and your deployment.