JSF is becoming more popular framework for user interface layer development, many architects and companies assuming that Struts is becoming outdated and JSF is catching up the market. I am not sure whether it is true at this point of time. However I would like to express my critic on the advantages and disadvantages of JSF.
Update (25-Sep-2013): In the recent trend, many companies started using the Java Script frameworks like jQuery, DOJO, etc. Still there are clear advantages on using the JSF, but the technology trend is moving in different direction after the evolution of Rich Internet Applications (RIA) concept.
Advantages of JSF
- Big vendors (Oracle, IBM, JBoss, etc) backing JSF implementation like EJB. Can expect good level of support and quality components from these vendors.
- By design and concept it allows to create reusable components. That will help to improve productivity and consistency.
- Many quality and ready to use components are available from Apache, Richfaces, Infragistics, Oracle, etc.
- The concept of action and action listener for button invocation is good.
- Has very good support for EL expression that improves the user interface code readability.
- The concept the validator and converter is excellent. Unlike struts JSF keeps the validation logic very close to the component declaration.
- With JSF 2.0 release, there is great looking third party libraries are released. The popular ones are PrimeFaces, Openfaces, etc.
Disadvantages of JSF
Is JSF matured?
JSF simplifies user interface development, and increases complexity on request processing lifecycle. Over the years, JSF has evolved as the complete yser interface solution and several leading IDEs offer the best integration to the JSF frameworks. Also there is good jsf books available in the market.