Every month the java developers here at whitehorses come together to discuss some aspect of development. Mostly these discussions focus on some part of the java landscape, but also topics like project management and development methodologies are covered.
Facelets are an integral part of Java Server Faces 2, and offer a relatively easy way of interacting between the view parts, and the model/controllers that provide the backing for the application. It seemed to us that facelets were a signigicant improvement over the standard JSP programming.
Spring-MVC provides a complete web framework with nice capabilities for connecting to backends. Also the validation frameworks was particularily interesting.
Struts 2.0 seems to be a large improvement over the old struts 1. However sentiments in the java world are quite negative about struts 2 despite this.
Wicket is one of those surprisingly elegant frameworks you encounter every now and then. It allows a clear separation of HTML code (design) and the java code (functionality) although both still need to follow the same structure. It is one of the few frameworks we have ever seen that allows for the designer to provide a design for a web site, and to incorporate that into the application almost immediately.
In our opinion wicket is clearly the most elegant web framework to work with, although the validation possibilities of Spring MVC and Struts 2 are also very nice.