In a nutshell, JSF eases Web-based application development because it:
* Lets you create user interfaces from a set of standard, reusable server-side components
* Provides a set of JSP tags to access those components
* Transparently saves state information and repopulates forms when they redisplay
* Provides a framework for implementing custom components
* Encapsulates event handling and component rendering so you can use standard JSF components or custom components to support markup languages other than HTML
* Lets tool vendors develop IDEs for a standard Web application framework
Besides being a conceptual combination of Struts and Swing, JSF is a direct competitor to Microsoft's WebForms. The frameworks are very similar, both in concept and implementation. And because JSF represents a standard for Java-based Web application frameworks, tool vendors can concentrate on developing IDEs for JSF instead of developing an IDE for one of approximately 35 existing Java-based Web application frameworks, including Struts.