JSF reduces the effort in creating and maintaining applications which will run on a Java application server and will render application UI on to a target client. JSF facilitates Web application development by
1: proving reusable UI components
2: making easy data transfer between UI components
3: managing UI state across multiple server requests
4: enabling implementation of custom components
5: wiring client side event to server side application code