1.新建工程,并导入Jsf需要的jars:
* jsf-impl.jar * jsf-api.jar * commons-digester.jar * commons-collections.jar * commons-beanutils.jar * jstl.jar * standard.jar
2.配置web.xml,将请求交由FacesServlet处理。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>jsf</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class> javax.faces.webapp.FacesServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping> </web-app> 在上面的定义中,我们将所有.faces的请求交由FaceServlet来处理,FaceServlet会唤起相对的.jsp网页,例如请求是/index.faces的话,则实际上会唤起/index.jsp网页,完成以上的配置,您就可以开始使用JSF了。
3.新建一个Bean,存储用户信息(name和password)
UserBean.java:
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:description rdf:about="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2628" dc:identifier="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2628" dc:title="简介JSF" trackback:ping="http://www.javaworld.com.tw/confluence/rpc/trackback/2628">--><!-- Root decorator: all decisions about how a page is to be decorated via the inline decoration begins here. --><!-- Switch based upon the context. However, for now, just delegate to a decorator identified directly by the context. -->
package com.jsf.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.faces.event.ValueChangeEvent; import javax.faces.event.ValueChangeListener; import javax.faces.model.SelectItem; import javax.swing.JOptionPane; public class UserBean { private String name; private String password; private String errMsg; public UserBean() { } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } public String getErrMsg() { return this.errMsg; } public void setErrMsg(String errMsg) { this.errMsg = errMsg; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } /** *校验用户名和密码的方法。 */ public String verify() { System.out.println("name:" + name + ",password:" + password); if (name.equals("admin") && password.equals("123456")) { return "success"; } else { errMsg = "用户名或密码错误!"; return "failure"; } } }
4.接下来设计页面流程,用户在index.jsp中输入用户名和密码,单击登陆按钮,通过UserBean的verify()方法检验,校验通过(返回success),则跳转到欢迎页面(welcome.jsp)
index.jsp:
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@page contentType="text/html;charset=gb18030"%> <f:view> <html> <body> <h:outputText value=”#{user.errMsg}/> <h:form> <h3>请输入用户名和密码</h3> 用户名:<h:inputText value=”#{user.name}”/><br> 密码:<h:inputSecret value=”#{user.password}/><br> <h:commandButton value=”登陆” action=”#{user.verify}”/> </h:form> </body> </html> </f:view>
welcome.jsp:
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@page contentType="text/html;charset=gb18030"%> <f:view> <html> <body> 欢迎<h:outputText value=”#{user.name}/>! </body> </html> </f:view>
5.为了让JSF知道我们所设计的Bean以及页面流程,我们定义一个/WEB-INF/faces-config.xml:
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> <faces-config> <navigation-rule> <from-view-id>/pages/index.jsp</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/pages/welcome.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>failure</from-outcome> <to-view-id>/pages/index.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class> com.jsf.test.UserBean </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指定的页面,并且指定了<navigation-case>中的<from-outcome>为success(即校验通过)时,则会将请求导向至<to-view-id>所指定的页面welcome.jsp,当<navigation-case>中的<from-outcome>为failure(即校验失败)时,则跳转回index.jsp。
在<managed-bean>中我们可以统一管理我们的Bean,我们设定Bean对象的存活范围是session。
6.接下来,将应用部署到tomcat,启动tomcat,并访问http://localhost:8080/工程名/pages/index.faces就可以了。
相关推荐
在"第一个JSF程序"中,我们将探索如何使用JSF来创建一个基本的Web应用。 首先,JSF应用通常由以下几个部分组成: 1. **Facelets**:这是JSF的视图技术,用于定义用户界面。Facelets使用XML语法,并允许开发者使用...
在这个环境中,我们将探讨如何在Eclipse集成开发环境(IDE)中,结合Tomcat 7.0应用服务器和JDK 1.7来创建并运行你的第一个JSF程序。 **1. 安装和配置环境** 首先,你需要确保已安装以下软件: - **Eclipse IDE**: ...
在“jsf第一个例子”中,我们通常会遇到以下关键概念: 1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用业务逻辑以及渲染响应。开发者可以在这些阶段插入自定义...
1. **用户身份验证**:这是登录过程的第一步,通过用户名和密码来确认用户的身份。在JSF中,这通常通过后台Bean(Managed Bean)处理,该Bean会检查输入的凭证是否匹配数据库或其他认证源中的记录。 2. **HTML表单*...
在学习这个"sun jsf第一个程序"的过程中,你会了解到如何集成所有这些组件来创建一个完整的JSF应用程序。通过实践,你将掌握JSF的基本概念和工作原理,为进一步深入学习JSF打下坚实基础。同时,这也会帮助你理解Web...
o 第一个JSF程序 o 简单的导航 Navigation o 导航规则设置 o JSF Expression Language o 国际化讯息 Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态...
在开始编写第一个JSF程序之前,需要确保已经安装了必要的软件和工具,如Java Development Kit (JDK) 和 JavaServer Faces 实现。通常,JSF程序会包括一个XHTML页面,该页面使用JSF组件进行布局,并通过托管Bean来...
#### 1.2 第一个JSF程序 一个典型的JSF程序包括几个主要组件:JSF页面、Managed Beans、配置文件等。开发者需要编写JSF页面,这些页面包含HTML和JSF标签。Managed Beans用于处理应用程序逻辑,而配置文件(如faces-...
这篇教程——"JSF第一步",显然旨在引导初学者进入JSF的世界,帮助他们理解并掌握这个强大的Web开发工具。下面将详细阐述JSF的基础知识,以及从给出的文件名中我们可以期待学习到的内容。 首先,让我们了解JSF的...
#### 1.1.2 第一个JSF程序 在开始构建JSF应用程序之前,了解基本的程序结构至关重要。一个简单的JSF程序通常包括以下几个组成部分: - **XML配置文件**(web.xml):定义应用程序的基本设置,如初始化参数和拦截器...
创建第一个JSF程序需要以下步骤: * 创建一个新的JavaEE项目 * 添加JSF框架的依赖项 * 创建一个简单的JSF页面 * 配置JSF框架 1.3 简单的导航Navigation JSF框架提供了一个简单的导航机制,允许开发者定义页面之间...
在《jsf第一步》这本书的第13章中,我们很可能会探讨JSF的更高级主题,例如自定义组件、数据验证、国际化和本地化,以及可能的性能优化策略。 首先,让我们深入了解一下JSF的核心概念: 1. **组件模型**:JSF的...
在这个“JSF第一个应用”中,我们将深入探讨如何创建一个基本的JSF应用。 ### 一、JSF框架概述 JSF框架提供了一系列的UI组件和事件处理机制,允许开发者使用声明式的方式构建用户界面。它遵循MVC(Model-View-...