A Wicket application serializes and caches all pages to support stateful components, as well as for supporting the back button, among other possible reasons. I have an applicati
In order to avoid Session choke due to continuous stacking of byte-stream due to serialization in a session and memory usage piling , you can use detachable models by using hooks to arrange for their own storage and restoration at the beginning of each request cycle , this way you have complete control over models containing byte-stream of pages not required in the session or navigable through 'Back' button.
http://apache-wicket.1842946.n4.nabble.com/Wicket-Session-grows-too-big-real-fast-td1875816.html
If you use loads of domain objects on your page, which are eventually tightly coupled to other domain objects, be sure to avoid serialization for these!
Have a look at LoadableDetachableModel for wrapping domaing objects DataView and IDataProvider for displaying list of domain objects
Thou shalt not stuff domain objects into instance variables of components. Thou shalt not make domain object references final in order to use them in anonymous subclasses. Thou shalt not pass a mere List of domain objects to a ListView.
Perhaps, when subclassing WbeRequestCycle in your Application class, you might gain control of a page's lifetime in the pagemap... haven't tried it, though