• Menu
  • Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

JavaBeat

Java Tutorial Blog

  • Java
    • Java 7
    • Java 8
    • Java EE
    • Servlets
  • Spring Framework
    • Spring Tutorials
    • Spring 4 Tutorials
    • Spring Boot
  • JSF Tutorials
  • Most Popular
    • Binary Search Tree Traversal
    • Spring Batch Tutorial
    • AngularJS + Spring MVC
    • Spring Data JPA Tutorial
    • Packaging and Deploying Node.js
  • About Us
    • Join Us (JBC)
  • Java
    • Java 7
    • Java 8
    • Java EE
    • Servlets
  • Spring Framework
    • Spring Tutorials
    • Spring 4 Tutorials
    • Spring Boot
  • JSF Tutorials
  • Most Popular
    • Binary Search Tree Traversal
    • Spring Batch Tutorial
    • AngularJS + Spring MVC
    • Spring Data JPA Tutorial
    • Packaging and Deploying Node.js
  • About Us
    • Join Us (JBC)

Advantages and Disadvantages – JSF

September 24, 2008 //  by Krishna Srinivasan//  Leave a Comment

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:

  • Introduction to JSF
  • JSF Interview Questions
  • Request Processing Lifecycle phases in 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.
  • 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.

    Category: JSFTag: Features

    About Krishna Srinivasan

    He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.

    Previous Post: « Custom DateTimeConverter in JSF
    Next Post: How to delete a cookie on server in a J2EE application »

    Reader Interactions

    Leave a Reply Cancel reply

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

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Primary Sidebar

    Follow Us

    • Facebook
    • Pinterest

    FEATURED TUTORIALS

    New Features in Spring Boot 1.4

    Difference Between @RequestParam and @PathVariable in Spring MVC

    What is new in Java 6.0 Collections API?

    The Java 6.0 Compiler API

    Introductiion to Jakarta Struts

    What’s new in Struts 2.0? – Struts 2.0 Framework

    JavaBeat

    Copyright © by JavaBeat · All rights reserved
    Privacy Policy | Contact