Re Wicket: have a look at PropertyModel and CompoundPropertyModel. You'll lose a bit of type safety, but it will seriously cut down on boilerplate code. In particular it helps map wicket:ids to your Java bean hierarchies by following simple conventions.
Somehow I managed to use Wicket for well over a year before realizing the benefit to this approach.
Somehow I managed to use Wicket for well over a year before realizing the benefit to this approach.