If you want to write an enterprise level web application you need to understand one fundamental principle. That principle is, your application will execute in the browser. You can use any server technology you want but you can't get rid of the browser if you are building a web application. What that means at the end of the day is that you can't get rid of Javascript, HTML or CSS because these are the technologies that your application will ultimately be implemented in.
That said, Wicket like all server side frameworks, abstracts away the "browser" part of your application as much as possible. Instead of you writing Javascript, Wicket writes it for you. Instead of you writing HTML, Wicket writes it for you. Instead of you writing CSS, Wicket writes it for you. You can write some of your own Javascript, HTML and CSS but any use of Wicket will write more for you.
I currently develop on a legacy enterprise application built in Wicket. This application is legacy because it has reached a point where simple client requests cannot be fulfilled using the Wicket technology. The developers are all Java developers and went with Wicket because it is supposed to be one of the better Java web frameworks. However after building the app and supporting it as the app has grown they've realized its more difficult to develop than anticipated. Now it has become very burdensome to develop and they are unable to meet some client requests. There is big money involved here so they are migrating to a RESTful application written in Javascript, HTML and CSS. The Wicket abstraction seemed to help at first, but this very abstraction turned out to be the source of the problem as well because you are at the mercy of what the abstraction will allow you to do in the browser.
This is not uncommon for companies building large scale web applications. Initially it seems easier to use a framework that abstracts the client technologies away. But typically this ties your hands too tight for enterprise level apps.
If you really want to control your application, you need to write it using the technologies that it ultimately executes in: Javascript, HTML and CSS. Rather than having a framework abstract those technologies away, you should learn them. Once you learn them you will be able to write enterprise level web applications that address concerns such security, state management and the like.
Check out these resources if you need a place to get started:
Architectural Style:
www.infoq.com/articles/rationalizing-presentation-tier
blog.jeffhaynie.us/mvc_is_dead.html
www.eweek.com/c/a/Application-Development/How-to-Architect-NextGeneration-Web-Applications/
How to write Javascript Applications:
developer.yahoo.com/yui/theater/video.php?v=zakas-architecture
andyet.net/blog/2010/oct/29/building-a-single-page-app-with-backbonejs-undersc/
jupiterjs.com/news/organizing-a-jquery-application