Home
JSF features and benefits
Standards-based Web application framework JSF is a Web application framework, evolved from Struts, the result of the Java Community process JSR-127 JSF addresses more of the model-view-controller pattern than Struts, in that it...
- More strongly addresses the view or presentation layer though UI components
- Addresses the model through managed beans. Although JSF is an emerging technology
JSF is targeted at Web developers with little knowledge of Java, eliminating much of the hand coding involved in integrating Web applications with back-end systems.
Event driven architecture JSF provides server-side rich UI components that respond to client events. UI development: UI components are de-coupled from their rendering, allowing for other technologies such as WML to be used (for example, mobile devices). JSF allows direct binding of UI components to model data.
Developers can use extensive libraries of prebuilt UI components that provide both basic and advanced Web functionality.
Session and object management JSF manages designated model data objects by handling their initialization, persistence over the request cycle, and cleanup. Validation and error feedback JSF allows direct binding of reusable validators to UI components. The framework also provides a queue mechanism to simplify error and message feedback to the application user. These messages can be associated with specific UI components. Internationalization JSF provides tools for internationalizing Web applications, including supporting number, currency, time, and date formatting, and externalization of UI strings. Many developers are of the opinion that for web applications, with UI and portlets in particular, JSF is definitely the better framework than Struts, Spring, or basic portlet.
Where JSF excels is with transactional applications, for example order entry, and with use cases that require a screen flow, keeping state, and error handling which may affect screen flow work well with JSF.
JSF might be overkill for a request/response application.