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.