Thursday, February 4, 2010

What is the Best Java Web Framework?

If you're looking for the best web framework for your Java EE project, which one will you choose?

First of all you should decide what kind of web framework are you looking for, action-based or component-based, or else.

Action-based means that the web application is fundamentally page-oriented, where HTTP requests are dispatched to a specific controller and then responded.

Component-based means that the web application is more about components than pages. You develop your web application similar to developing desktop GUI applications and Flex RIAs.

Service-oriented web applications are those that provide REST APIs and generally consume and produce JSON, XML, or Atom... not HTML. This kind of applications will be discussed in another post (remind me, please!) :-)

Here are the frameworks that I recommend you should review.

Action-based Java Web frameworks

Component-based Java web frameworks 

Thanks to JSF 2.0, the choice in this category is simpler. JSF 2.0 comes with built-in AJAX support, which means you not only have a choice in component libraries but can mix-and-match them if you want.
At the time of this writing, most JSF 2.0 component libraries are still in beta testing phase.

For the JSF 2.0 implementation you have several choices: Mojarra, Apache MyFaces.

Other considerations.
  • JBoss Seam 3 (not yet released) since it has JSF 2.0 support.
So, what's your take? Let me know of your opinions.