Friday, August 20, 2010

JSF

Benefits of JSF

Page navigation specification
Standard user interface components like input fields, buttons, and links
User input validation
Easy error handling
Java bean management
Event handling
Internationalization support

JSF Life Cycle

Restore View PhaseApply Request Values PhaseProcess Validations PhaseUpdate Model Values PhaseInvoke Application PhaseRender Response Phase

JSF JARS

jsf-impl.jar
jsf-api.jar
faces-config.xml

TAG LIBRARIES

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

SAMPLE CONFIG FILE

<?xml version="1.0"?>
lt;!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config>
<navigation-rule>
<from-view-id>/pages/inputname.jsp</from-view-id>
<navigation-case>
<from-outcome>greeting</from-outcome>
<to-view-id>/pages/greeting.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>personBean</managed-bean-name>
<managed-bean-class>jsfks.PersonBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>

SAMPLE WEB.XML FILE

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<!-- Just here so the JSF implementation can initialize -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>

SAMPLE JSP CODE

<html>
<body>
<f:view>
<h:form id="person">
<h:commandLink id="Details"
action="editBook"
actionListener="#{personBean.getDetails}">
<h:outputText value="Add a book" />
</h:commandLink>
</h:form>
</f:view>
</body>
</html>