Search code examples
javajsfseamwicketweb-frameworks

Which framework should I choose - Seam, Wicket, JSF or GWT?


I'm debating whether to use Seam, Wicket, JSF or GWT as the foundation for my presentation layer in a Java project.

I narrowed my selection of Java web frameworks down to this subset based on job market considerations, newness of the technology and recommendations from other S.O. users.

What factors should I take into consideration in deciding among these?


Solution

  • The only one of those I've used is JSF, so I won't be able to give you feedback on the others, but here's my take on JSF. In my experience, the minute we converted from JSF in JSP to JSF in facelets, life got MUCH easier, so I'll focus around facelets. Also, It looks like Seam and JSF are not mutually exclusive.

    Pros:

    • Creating facelets xhtml components is simple, which promotes re-use.
    • Decent templating abilities using built in tags like ui:insert, ui:include, and ui:decorate
    • Simple access to Spring beans through faces-config
    • XHTML based so web developers unfamiliar with java can still be effective
    • Good widget library available in tomahawk/trinidad

    Cons:

    • Post requests only. This can make bookmarking difficult.
    • Not as built-in ajax-y as GWT, but this may be fixed if used with Seam

    I'm by no means an expert in JSF/Facelets, so I'm sure there are others I've missed. Hopefully someone else will also elaborate.

    Update for JSF 2.0: