Advantages and Disadvantages – JSF

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.

also read:

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.
  • JavaScript code are embedded as part of the component; this keep less confusion for developers and more re-usability on JavaScript code.
  • With JSF 2.0 release, there is great looking third party libraries are released. The popular ones are PrimeFaces, Openfaces, etc.

Disadvantages of JSF

  • Steep learning curve is one of the main dis-advantage of the JSF. However, if you are familiar with HTML and CSS concepts, it is going to be a cake walk for you
  • There is no benchmarking report or promise from Sun Microsystems about the performance of JSF framework. By seeing their concept I believe it is not suitable for high performance application.
  • The specification doesn’t consider bookmarking facility.
  • Hardly a very few examples available for developing dynamic pages including new component and removing a component from a page based on business rule.
  • Every button or link clicked results in a form post. That’s just wrong why can’t I have true links like the web is supposed to? Form submission for page navigation make complex coding for simple requirement like Cancel button. Read here to know the work around.
  • Datatable component requires same data from bean on restore view phase. If the data retrieved from database, this will have impact on performance. Click here to know more about this issue.
  • There is no tight coupling between managed bean and phase listener. This is a major drawback of JSF which makes JSF phase listener feature unusable.
  • Default error message is not good. Need to customize the default error message.
  • Not Scalable. It uses session object to store the component state across the request. In server farm environment it is too costly to replicate the session data.
  • 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.

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    Pin It on Pinterest

    Share This

    Share this post with your friends!

    Share This

    Share this post with your friends!