Introduction to JSF

JSF is a server side UI based MVC Framework for building Java based web application.

Introduction to JSF

Introduction to JSF

JSF is a server side UI based MVC Framework for  building Java based web application.

JSF has 100+ UI ready tag and use of annotations makes development more faster and more easier. JSF consist of tag library which sum up the elements to the web page and it also connect these component to the objects of the server side.

Some of the services provided by the JSF API are given below :

  • Representation of the component and management of their state

  • Data Conversion

  • Server side validation

  • Supports Internationalization

  • Define Page Navigation

  • Also provide extensibility for all these features

Using JSF, you can perform the following task very easily :

  • Web page creation

  • By adding component tags, you can easily add component to the web pages through dropping.

  • Connect component originated events to the application code at the server side.

  • You can save application state and restore it after the life cycle of server requests.

  • Using customization, you can reuse and extends the components.

A normal or usual JSF(Java Server Faces) applications have the following parts :

  • Web pages which have components inside it.

  • Tags for adding component to the web pages.

  • Managed beans which provides resource injection, lifecycle callbacks and interceptors.

  • Deployment descriptor

  •  Application configuration files, for example - faces-config.xml, for  beans and custom components(custom objects) configuration and defining page navigation rules.

  • (Optional)In spite of all the above, the developer can add custom object  such as custom components, Validators, converters, or listeners.

  • (Optional) The custom tags for displaying custom tags on the web page.

Advantages of using JSF

  • The biggest advantage of using JSF is that it has clear separation between behavior and presentation layer

  • The clear separation allows the each development team member to focus on their piece of development and it also gives us simple programming model to  link these pieces. For example-a non technical content or page writer can link the page to sever side objects using tags without coding any script. 

  • Using customization, you can reuse and extends the components.

  • Provides annotations which reduce the manual configuration overhead.