If you are a Java developer and you want to build a B2C web app which need to support huge amount of concurrent user access, I'll suggest you using GWT 2.0.
I wouldn't suggested anyone to use GWT while 1.X because you need to ship your application using a CD-ROM or your user have to wait for ages for javascript loading (this is not what I said, it's Google Wave team confessed in GWT2.0 release video in Youtube).
But since GWT2.0, The GWT.async() is a simple but powerful concept that helped you to load UI on demand, plus the UiBinder, it's mature enough now.
Here is an example of how to use UiBinder to layout your App:
UiBinderEN
But if what you need is to ship your product in a short time and the result is to build a MIS system or an existing product's Web UI. I'll say ZK + any other Javascript lib might be your choice.
ZK not only allows you to do fast prototyping like:
<window>
<textbox id="usr"/>
<textbox id="pwd" mode="password" />
<button label="submit">
<attribute name="onClick">
loginCtrl.submit(usr.value, pwd.value);
</attribute>
</button>
...
But also help you to refactor them to more organized MVC pattern.
Both of these two AJAX Java Frameworks use XML + CSS as there layout document, have plugin point for native Javascript and have Eclipse IDE support. The development speed of using ZK is faster but GWT's memory consumption is lower.
And actually, it's possible to ask them to cooperate to each other!