创建一个完整的jsf程序的步骤如下:
1:创建一个 managed-bean。
2:配置faces-config.xml,把新建立的managed-bean加入faces-config.xml。
3:编写jsp页面。
4:在faces-config.xml里面加人导航信息。
下面将按照上述的步骤建立一个jsf应用。
1:创建managed-bean。
我们所要用到的bean只有两个属性,分别是name和怕ssword。代码如下:
package com.corejsf;
public class UserBean
{
private String name;
private String password;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password=password;
}
}
关于代码没有什么好解释的,基本上是最简单的bean了。下面我们配置faces-config.xml。
2:配置faces-config.xml。
相应的代码如下:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.corejsf.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
关于放置的位置,依个人的配置而定,可以参考http://java.sun.com/dtd/web-facesconfig_1_1.dtd里面的定义。
我的是放在了</application>标签的后面。
关于标签里属性的解释,user实际上是给UserBean起的别名,这样可以在jsp直接用user来引用UserBean的属性。在下一步里面还会详细说明。com.corejsf.UserBean是这个bean的路径。session表明这个bean在整个用户会话的过程中都可以访问这个bean。
3:jsp页面的编写。这里我们将要用到两个页面,分别是index.jsp和welcome.jsp。我们分别介绍这两个页面。
index.jsp
显示效果
代码
<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<f:view>
<head>
<title>A Simple JavaServer Faces Application</title>
</head>
<body>
<h:form>
<h3>Please enter your name and password.</h3>
<table>
<tr>
<td>Name:</td>
<td><h:inputText value="#{user.name}" /></td>
</tr>
<tr>
<td>Password:</td>
<td><h:inputSecret value="#{user.password}" /></td>
</tr>
</table>
<p><h:commandButton value="Login" action="login" /></p>
</h:form>
</body>
</f:view>
</html>
对这个标签做一下解释<h:commandButton value="Login" action="login" />。这个标签相当于submit,提交之后系统会根据action的属性进行导航。具体的在下一部分说明。
关于其他标签的意思就不做解释了,也还不大懂呀。
welcome.jsp
显示效果:
代码
<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<f:view>
<head>
<title>A Simple JavaServer Faces Application</title>
</head>
<body>
<h3>Welcome to JavaServer Faces, <h:outputText
value="#{user.name}" />!</h3>
</body>
</f:view>
</html>
4:配置导航信息。
将下面代码加入faces-config.xml。
<navigation-rule>
<from-view-id>/login/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/login/welcome.jsp</to-view-id>
</navigation-case>
</navigation-rule>
这一部分导航信息告诉jsf下一个页面如何跳转。当用户点击了Login按钮之后,我们想要从index.jsp跳转到welcome.jsp。<from-outcome>与index.jsp里面的action对应。当点击了Login按钮后,系统会根据action去寻找导航信息,然后就可以跳转到/login/welcome.jsp。
至此,这一个jsf应用就算完成了。