- Create the JSP to contain the form tag of
JSF with the form field tags.
- Create the managed bean to contain values
of form field and the validation methods.
- Provide information about the managed
bean and navigation cases in the faces-config.xml file
- Create pages for each navigation cases.
Form field tags in JSF
- Input Text: - This creates a text field.
- Input Secret: - This creates a password
field.
- Input Textarea: - This creates a multilane
text area.
- Input Hidden: - This creates a invisible
field.
- Command Button: - This creates a button.
- Select Many checkbox: - This creates a
group of checkbox.
- Select One checkbox: - This creates a
checkbox.
- Select item: - This creates an item inside
a group of checkbox.
- Select Boolean checkbox: - This creates a
radio button.
- Select Many menu: - This creates a
combobox.
- Seect One menu: - To create a combobox
where one item will be visible.
- Select One listbox: - To create a listbox
where one item can be selected.
Common attribute of form field tags
Id: - This contains a name to be treated as the id of the tag.
Value: - This contains the name of a property or variable present inside the managed
bean. Whenever the form gets submitted, then the value of the form field gets
assigned to the specified property of the managed bean.
Attribute of command button
Action: - This contains the name of the validation method present in the
managed bean. Whenever the button gets pressed, the specified method gets
called for validation of input and to return the navigation case.
Creation process of a managed bean
- Create a class in a package as the managed
bean.
- Provide variables as the properties of the
bean. Name of these variables must match with the value attribute present in
the form field tags.
- Provide setter and getter methods for each
of the variables.
- Provide the validation method to validate
input of users and to return appropriate navigation cases. Name of this
method must match with the action attribute present in command button tag.
This method must return a string to contain the navigation case.
- Store the package folder inside classes
folder. Compile the file as any ordinary java file.
Providing information in faces-config.xml
- Provide information about managed bean by
using following tags in faces-config.xml file
<managed-bean>
<managed-bean-name>
This contains object name of managed bean
</managed-bean-name>
<managed-bean-class>
This contains class name of managed bean
</managed-bean-class>
<managed-bean-scope>
This contains value as request, response, session, application as the scope
of bean
</managed-bean-scope>
</managed-bean>
- Provide information about navigation case
by using following tags as
<navigation-rule>
<from-view-id>
This contains the name of the jsp from where the request will be generated
</from-view-id>
<navigation-case>
<from-outcome>
This contain name of the navigation case
</from-outcome>
<to-view-id>
This contains name of the page for the navigation case
</to-view-id>
</navigation-case>
<navigation-case>
</navigation-rule>
Creating a login form using JSF
Here we use Type-1 driver (JDBC-ODBC bridge)
Creation of dsn(database source name) for Oracle
Start-Control panel- Administrative Tools- Data Sources (ODBC)-go to system dsn
tab-click add button-select a driver for which you want to set up data source
(for Oracle- Oracle in XE)-select it and click finish-give any name in data
source name textbox-then click ok button.
Note: - Here Username=system, Password=pintu and Dsn name=dsn1
Table Creation with data
create table userinfo(userid varchar(50),pass varchar(50))
insert into userinfo values('Raj','raj123')
insert into userinfo values('Ravi','ravi123')
insert into userinfo values('Rahul','rahul123')
Creation of managed bean for login
Create a package folder (pack1) inside the classes folder of the context (E:\jsf\WEB-INF\classes).
Store all the managed bean files inside the package folder (pack1).
Logbean.java file
//managed bean
package pack1;
import java.sql.*;
public class logbean
{
String userid;
String password;
public logbean()
{
}
public String getUserid()
{
return userid;
}
public void setUserid(String userid)
{
this.userid = userid;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String CheckValidUser()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:dsn1","system","pintu");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from userinfo where userid='"+userid+"'
and pass='"+password+"'");
if(rs.next())
return "success";
}
catch(Exception e)
{
}
return "fail";
}
}
Compile the managed bean file.
Javac logbean.java
Creating the JSP form field tags and respective forward JSP pages
Store all the jsp pages inside the context folder (E:\jsf)
Here there are three jsp pages they are login.jsp, success.jsp and fail.jsp.
login.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%--
This file is an entry point for JavaServer Faces application.
--%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script language="javascript">
function check()
{
var uid=document.getElementById("f1:uid1").value
var pass=document.getElementById("f1:pass").value
if(uid=="")
{
alert("Please Enter Userid")
return false
}
if(pass=="")
{
alert(" Please Enter Password")
return false
}
}
</script>
</head>
<body>
<f:view>
<h1><h:outputText value="JavaServer Faces Login form" /></h1>
<h:form id="f1" onsubmit="return check()">
<table>
<tr>
<td><h:outputText value="USER ID:" /></td>
<td><h:inputText id="uid1" value="#{logbean.userid}" /></td><br>
</tr>
<tr>
<td><h:outputText value="PASSWORD:" /></td>
<td><h:inputSecret id="pass" value="#{logbean.password}" /></td>
</tr>
<br>
<tr>
<td><h:commandButton value="Login" action="#{logbean.CheckValidUser}" /></td>
</tr>
</table>
</h:form>
</f:view>
</body>
</html>
success.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<f:view>
<html>
<body>
<h1>Welcome::: <h:outputText value="#{logbean.userid}" /></h1>
</body>
</html>
</f:view>
fail.jsp
<html>
<body>
<h1 align="center">Incorrect uid/passwords</h1>
</body>
</html>
Note: - Place two files named as web.xml file and faces-config files
inside WEB-INF folder of the context (E:\jsf\WEB-INF). In web.xml file we
provide the servlet name and url pattern. In faces-config.xml there are two
sections they are managed-bean section and the other one is navigation-rule
section.
Managed-bean section: - Here we provide bean name, bean class and bean
scope.
Navigation-rule section: - Here we provide the respective forward jsps
according to the cases, that we already mentioned in the managed bean.
Web.xml settings
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<servlet>
<servlet-name>x</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>x</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
faces-config settings
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<managed-bean>
<managed-bean-name>logbean</managed-bean-name>
<managed-bean-class>pack1.logbean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>success.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>fail</from-outcome>
<to-view-id>fail.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Running the application
Run the tomcat then write the below line in the URL
http://localhost:8081/javajsf/login.jsf
Here javajsf is the Context path, which we mentioned in the server.xml file,
which is present in (E:\Program Files\Apache Software Foundation\Tomcat
6.0\conf) directory.