`

jsf-1-1:第一个jsf

    博客分类:
  • jsf
 
阅读更多

 

jsf-impl.jar
    * jsf-api.jar
    * commons-digester.jar
    * commons-collections.jar
    * commons-beanutils.jar
    * jstl.jar
    * standard.jar

 

web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <description>
        JSF Demo
    </description>
    <display-name>JSF Demo</display-name>
    <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>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
 </web-app>

  在上面的定义中,我们将所有.faces的请求交由FaceServlet来处理,FaceServlet会唤起相对的.jsp网页,例如请求是/index.faces的话,则实际上会唤起/index.jsp网页,完成以上的配置,您就可以开始使用JSF了。

<!-- <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"/> </rdf:RDF> --><!-- 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. -->

 

先看看应用程序开发人员要作些什么事,我们撰写一个简单的JavaBean:

UserBean.java
package onlyfun.caterpillar;

 public class UserBean {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
 }

  这个Bean将储存使用者的名称,编译好之后放置在/WEB-INF/classes下。

  接下来设计页面流程,我们将先显示一个登入网页/pages/index.jsp,使用者填入名称并送出窗体,之后在/pages/welcome.jsp中显示Bean中的使用者名称与欢迎讯息。

  为了让JSF知道我们所设计的Bean以及页面流程,我们定义一个/WEB-INF/faces-config.xml:

faces-config.xml
<?xml version="1.0"?>
 <!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>login</from-outcome>
            <to-view-id>/pages/welcome.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>

    <managed-bean>
        <managed-bean-name>user</managed-bean-name>
         <managed-bean-class>
             onlyfun.caterpillar.UserBean
         </managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
 </faces-config>

  在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指定的页面,并且指定了<navigation-case>中的<from-outcome>为login时,则会将请求导向至<to-view-id>所指定的页面。

  在<managed-bean>中我们可以统一管理我们的Bean,我们设定Bean对象的存活范围是session,也就是使用者开启浏览器与程序互动过程中都存活。

  接下来要告诉网页设计人员的信息是,他们可以使用的Bean名称,即<managed-bean-name>中设定的名称,以及上面所定义的页面流程。

网页设计人员

  首先网页设计人员撰写index.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=Big5"%>
 <html>
 <head>
 <title>第一个JSF程序</title>
 </head>
 <body>
    <f:view>
        <h:form>
            <h3>请输入您的名称</h3>
            名称: <h:inputText value="#{user.name}"/><p>
            <h:commandButton value="送出" action="login"/>
        </h:form>
    </f:view>
 </body>
 </html>

  我们使用了JSF的core与html标签库,core是有关于UI组件的处理,而html则是有关于HTML的进阶标签。

  <f:view>与<html>有类似的作用,当您要开始使用JSF组件时,这些组件一定要在<f: view>与</f:view>之间,就如同使用HTML时,所有的标签一定要在<html>与< /html>之间。

  html卷标库中几乎都是与HTML卷标相关的进阶卷标,<h:form>会产生一个窗体,我们使用<h: inputText>来显示user这个Bean对象的name属性,而<h:commandButton>会产生一个提交按钮,我们在action属性中指定将根据之前定义的login页面流程中前往welcome.jsp页面。

  网页设计人员不必理会窗体传送之后要作些什么,他只要设计好欢迎页面就好了:

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=Big5"%>
 <html>
 <head>
 <title>第一个JSF程序</title>
 </head>
 <body>
    <f:view>
        <h:outputText value="#{user.name}"/> 您好!
        <h3>欢迎使用 JavaServer Faces!</h3>
    </f:view>
 </body>
 </html>

  这个页面没什么需要解释的了,如您所看到的,在网页上没有程序逻辑,网页设计人员所作的就是遵照页面流程,使用相关名称取出数据,而不用担心实际上程序是如何运作的。

  接下来启动Container,连接上您的应用程序网址,例如:http://localhost:8080/jsfDemo/pages/index.faces,填入名称并送出窗体

分享到:
评论

相关推荐

    JSF编程WEB-INF下lib内所用到的jar包集成

    1. **webui-jsf.jar** 和 **webui-jsf-suntheme.jar**: 这两个JAR包提供了JSF的用户界面组件和主题。`webui-jsf.jar`包含了基本的JSF UI组件,如按钮、输入字段等,而`webui-jsf-suntheme.jar`则提供了Sun ...

    jsf-完整的标签和API

    在这个"jsf-完整的标签和API"的压缩包中,我们可以深入学习和理解JSF的各种标签及其API,同时还能通过小项目源代码进行实践操作。 **JSF标签** 是JSF中的重要组成部分,它们类似于HTML标签,但提供了更丰富的功能和...

    JSF-2-DataTable

    JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,特别适用于开发Web应用程序。在JSF 2.0版本中,DataTable组件是一个核心功能,它允许开发者以表格形式展示数据,支持多种交互和操作,如排序、筛选和...

    jsf-spring-4.0.3

    标题"jsf-spring-4.0.3"表明这是一个关于JSF与Spring整合的特定版本,4.0.3可能指的是Spring框架的一个版本,这通常意味着该资源包含了使得这两个框架能够协同工作的配置和示例代码。 在描述中提到的"jsf他spring...

    精通JSF-基于EJB Hibernate Spring整合开发与项目实践-第16章代码

    在本资源中,"精通JSF-基于EJB Hibernate Spring整合开发与项目实践-第16章代码",我们探讨的是一个使用JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Hibernate以及Spring框架进行企业级Web应用开发的实际...

    jsf-by-example-源码.rar

    在这个名为"jsf-by-example-源码"的压缩包中,我们很可能会找到一系列关于JSF应用开发的示例代码。 **1. JSF框架概述** JSF遵循MVC(Model-View-Controller)设计模式,提供了一种声明式的方式来管理Web界面的生命...

    一个简单的jsf例子------JSF2学习笔记1

    - `jsf-impl.jar` 和 `jsf-api.jar` 包含了JSF2的核心实现和API,供应用程序使用。 - `commons-collections-3.1.jar` 提供了集合操作的扩展,常常用于辅助处理数据。 - `commons-beanutils-1.8.0.jar` 提供了对...

    jsf-api-src.zip

    JSF 1.2是JSF的第一个稳定版本,而JSF 2.x引入了许多改进和新特性,如Facelets视图技术、Managed Beans和依赖注入、以及更强大的Ajax支持。 JSF框架的核心组件包括以下几个部分: 1. **FacesContext**:这是JSF...

    Java-Maven-Eclipse-JSF-Tutorial.pdf

    - 介绍了如何安装和配置 Java、Maven 和 Eclipse,以及如何创建第一个简单的 Java 应用程序。 - 通过这个过程,读者可以熟悉 Maven 和 Eclipse 的基本使用方法。 - **第 2 章:Java Web、Maven 和 Eclipse**: - ...

    JSF-2-Hello-World-Example.zip

    这个"JSF-2-Hello-World-Example.zip"压缩包很可能是包含了一个简单的JSF 2.x入门示例,帮助初学者理解框架的基本工作原理和使用方法。 JSF框架的核心组件包括: 1. **Facelets**:JSF 2.x默认的视图层技术,用于...

    esigate-jsf-4.0-beta-1.zip

    【标题】"Esigate-JSF-4.0-Beta-1.zip" 是一个开源项目,主要涉及Esigate和JSF技术。Esigate是一款强大的反向代理服务器,它旨在优化企业级Web应用程序的性能和安全性。JSF(JavaServer Faces)是Java平台上的一个...

    jsf --lib

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。JSF的核心概念是组件模型,它允许开发者通过拖放组件的方式创建用户界面,并且提供了事件处理和数据绑定机制。在JSF中,`--lib`...

    精通JSF-基于EJB Hibernate Spring整合开发与项目实践-第15章代码

    在"精通JSF-基于EJB Hibernate Spring整合开发与项目实践-第15章代码"中,我们可以推测这章内容可能涉及以下知识点: 1. **JSF与Spring的集成**:如何在JSF应用中利用Spring进行依赖注入,以及如何在JSF的managed ...

    精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1

    精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1,第一部分,。将三部分一起下载完后再解压第一部分!

    JSF-JPAExample

    在"JSF-JPAExample"中,我们看到的是一个结合了这两个技术的示例应用,展示了如何在JSF前端进行用户交互,同时利用JPA在后台进行数据的CRUD(Create, Read, Update, Delete)操作。 **.classpath** 文件是Eclipse ...

    JSF的第一个程序

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

    JSF-Demo.rar_DEMO_jsf demo down load

    本DEMO——"JSF-Demo.rar" 是一个适用于初学者的实践项目,旨在帮助学习者快速理解和掌握JSF的基本概念和使用方法。 在"第14章JSF代码"这个压缩包中,我们可以期待找到以下几个关键的知识点: 1. **JSF基本概念**...

    jsf常用控件的使用

    - `h:form`:定义一个JSF表单,所有交互元素应包含在此内。 - `h:inputCheckbox`和`h:inputRadio`:用于创建单选按钮和复选框,常用于选择列表。 - `h:selectOneRadio`和`h:selectManyCheckbox`:提供单选和多选...

Global site tag (gtag.js) - Google Analytics