`

第一个Jsf程序

jsf 
阅读更多

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">--&gt;<!--
    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程序"中,我们将探索如何使用JSF来创建一个基本的Web应用。 首先,JSF应用通常由以下几个部分组成: 1. **Facelets**:这是JSF的视图技术,用于定义用户界面。Facelets使用XML语法,并允许开发者使用...

    JSF的第一个程序

    在这个环境中,我们将探讨如何在Eclipse集成开发环境(IDE)中,结合Tomcat 7.0应用服务器和JDK 1.7来创建并运行你的第一个JSF程序。 **1. 安装和配置环境** 首先,你需要确保已安装以下软件: - **Eclipse IDE**: ...

    jsf第一个例子 jsf架包 jsf实例

    在“jsf第一个例子”中,我们通常会遇到以下关键概念: 1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用业务逻辑以及渲染响应。开发者可以在这些阶段插入自定义...

    jsf 登录验证程序

    1. **用户身份验证**:这是登录过程的第一步,通过用户名和密码来确认用户的身份。在JSF中,这通常通过后台Bean(Managed Bean)处理,该Bean会检查输入的凭证是否匹配数据库或其他认证源中的记录。 2. **HTML表单*...

    sun jsf第一个程序

    在学习这个"sun jsf第一个程序"的过程中,你会了解到如何集成所有这些组件来创建一个完整的JSF应用程序。通过实践,你将掌握JSF的基本概念和工作原理,为进一步深入学习JSF打下坚实基础。同时,这也会帮助你理解Web...

    JSF基础教程 简体中文

    o 第一个JSF程序 o 简单的导航 Navigation o 导航规则设置 o JSF Expression Language o 国际化讯息 Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态...

    JSF入门教程

    在开始编写第一个JSF程序之前,需要确保已经安装了必要的软件和工具,如Java Development Kit (JDK) 和 JavaServer Faces 实现。通常,JSF程序会包括一个XHTML页面,该页面使用JSF组件进行布局,并通过托管Bean来...

    JSF配置.pdf

    #### 1.2 第一个JSF程序 一个典型的JSF程序包括几个主要组件:JSF页面、Managed Beans、配置文件等。开发者需要编写JSF页面,这些页面包含HTML和JSF标签。Managed Beans用于处理应用程序逻辑,而配置文件(如faces-...

    JSF第一步

    这篇教程——"JSF第一步",显然旨在引导初学者进入JSF的世界,帮助他们理解并掌握这个强大的Web开发工具。下面将详细阐述JSF的基础知识,以及从给出的文件名中我们可以期待学习到的内容。 首先,让我们了解JSF的...

    JSF学习笔记

    #### 1.1.2 第一个JSF程序 在开始构建JSF应用程序之前,了解基本的程序结构至关重要。一个简单的JSF程序通常包括以下几个组成部分: - **XML配置文件**(web.xml):定义应用程序的基本设置,如初始化参数和拦截器...

    JSF入门级教程

    创建第一个JSF程序需要以下步骤: * 创建一个新的JavaEE项目 * 添加JSF框架的依赖项 * 创建一个简单的JSF页面 * 配置JSF框架 1.3 简单的导航Navigation JSF框架提供了一个简单的导航机制,允许开发者定义页面之间...

    jsf第一步

    在《jsf第一步》这本书的第13章中,我们很可能会探讨JSF的更高级主题,例如自定义组件、数据验证、国际化和本地化,以及可能的性能优化策略。 首先,让我们深入了解一下JSF的核心概念: 1. **组件模型**:JSF的...

    JSF第一个应用

    在这个“JSF第一个应用”中,我们将深入探讨如何创建一个基本的JSF应用。 ### 一、JSF框架概述 JSF框架提供了一系列的UI组件和事件处理机制,允许开发者使用声明式的方式构建用户界面。它遵循MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics