Well, coming from an PHP background i work now for 8 months in Wicket and my feeling are very mixed. The learning curve is immense. Simple things like implementing RadioGroups are extremly complicated. Why do we have to explicitly set wantOnSelectionChangedNotifications set to true? Why there is no AjaxRadio? We often end up googling, trying, looking into Ctrl+Space to see if there is a method we could use. Often you use a class like for example FormComponentUpdatingBehavior and add 4 of them to one Component only to find out two days later that there is something like OnChangeAjaxBehavior. You need an checkbox – you use the checkbox class. You need Ajax Behavior – you add a behavior. Only to find out 2 weeks later that there is an AjaxCheckBox. You want to render some Javascipt on every panel render – what to u use? target.appendJavascript? You override renderHead() in the panel only to add a JavaScriptContentHeaderItem, JavaScriptHeaderItem, JavaScriptReferenceHeaderItem, JavaScriptResourceReference or JavaScriptUrlReferenceHeaderItem?
Models? You have to use models, pass them to panel, cascade them. They are essentials, use models everywhere or you run in trouble. The best you can do is use everwhere LoadableDetachableModels. Problem is: you dont have to use models. You write your constructor, you pass POJOs and i works. No one cares. Half of our app works like this. By works i mean works. So are models mandatory or not? And if yes why arent we are forced to use Models?
In wicket you can almost forget writing your own JavaScript. You have to write JavaScript through Wicket if you want to avoid trouble.
I love behaviors and IEvent. Add 3 behaviors to a component , send 3 events to getPage() and try to understand what your app is doing.

Dont get me wrong: i like Wicket. It is often fun to work with it. It is powerful – no question. Out of the box AJAX is great. But it is inconsistent, often simple things which you would do in PHP or similar languages just and they work, you cant do here. You must do them complicated. You end up with slow development speed. If you have time Wicket is ok. If you want to do something fast – forget about Wicket unless you are on of the few chosen One’s.