Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pros and Cons of Various Java Web Presentation Layer Technologies

I'm currently working on a web app that makes heavy use of JSF and IceFaces. We've had some discussions of moving to another presentation layer, and I thought I'd take the discussion out into SO and see what the experts think.

I'm curious if anyone could weigh in on the pros and cons of the various Java presentation layer technologies. If you've only worked with one, say why you love it or hate it. If you've worked with several, give your impressions of how they stack up against each other.

Our technologies under consideration are:

  • IceFaces
  • JSF (without IceFaces)
  • GWT (Google Web Toolkit)
  • Wicket
  • Tapestry

And if I'm missing anything from my list, let me know.

Thanks!

like image 344
rtperson Avatar asked Feb 11 '09 20:02

rtperson


1 Answers

My opinions are quite heavily biased towards Wicket because I've been using it for a while after tripping over JSP mines far too many times.

Wicket PROs:

  • True separation of layout and code.
  • Component based which means high reusability of site elements; For example you can create prettified form with automatic labeling and CSS styles and everything and just by changing it's DAO object in the component's constructor it's completely reusable in another project.
  • Excellent support for things like Ajax, Portlets and various frameworks in general directly out-of-the-box AND more importantly it doesn't rely on anything else than slf4j/log4j to work, everything's optional!

Wicket CONs:

  • Development has some confusion about things in general and Wicket generics are a bit of a mess right now although they've been cleaned a lot in 1.4
  • Some components (like Form.onSubmit()) require extensive subclassing or anonymous method overriding for injecting behaviour easily. This is partly due to Wicket's powerful event-based design but unfortunately it also means it's easy to make a code mess with Wicket.

Random CONs: (that is, I haven't used but these are my opionions and/or things I've heard)

  • GWT is JavaScript based which sounds stupid to me. Main issue is that it reminds me too much of JSP:s and its autogenerated classes which are horrible.
  • Tapestry doesn't separate markup and code properly in a manner which could be easily validated between the two which will cause problems in the future.
like image 123
Esko Avatar answered Sep 20 '22 05:09

Esko