`
lcy0202
  • 浏览: 176552 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSF基础入门

    博客分类:
  • JSF
 
阅读更多

1. JSF是什么:在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰的前端技术框架,它严格遵循MVC设计模式。其实就是和structs几乎一模一样,配置上面的做法也差不多。

 

2. JSF 生命周期:FacesServlet 充当用户和 JSF 应用程序之间的纽带。它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作。

    1.   当JSF页面上的一个事件发生时(比如:用户单击了一个按钮),事件通知通过HTTP发往服务器。服务器端使用FacesServet这个特殊的Servlet处理该通知。

     2.   FacesServlet一接收到用户的请求就创建一个FacesContext对象(JSF上下文,它存放了应用程序的所有数据)。在处理过程中,主要修改的就是这个FaceContext对象。

      3.   接着就是处理过程,处理器是一个叫作Lifecycle的对象。FacesServet把控制权转交给Lifecycle对象。该对象分6个阶段来处理FacesContext对象以生成响应,最后将响应发回客户端。

3. 如何使用JSF

           1. 添加jar包

           2.配置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-->
        <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>

 

 3.添加/WEB-INF/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>/index.jsp</from-view-id>
        <!-- 在verify()方法中,我们检查使用者名称与密码,它传回一个字符串,"failure"表示登入错误,
                           并会设定错误讯息,而"success"表示登入正确,这个传回的字符串将决定页面的流程 -->
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/welcome.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>failure</from-outcome>
            <to-view-id>/index.jsp</to-view-id>
        </navigation-case>

    </navigation-rule>

    <managed-bean>
        <!--jsp页面引用的名字-->
        <managed-bean-name>user</managed-bean-name>
        <!-- 对应哪一个类-->
         <managed-bean-class>
             lcy.UserBean
         </managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
 </faces-config>

  4. 处理类 UserBean.java

package lcy;
public class UserBean {
	private String name;
    private String password;
    private String errMessage;

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

    public String getName() {
        return name;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public void setErrMessage(String errMessage) {
        this.errMessage = errMessage;
    }

    public String getErrMessage() {
        return errMessage;
    }

    public String verify() {
        if(!name.equals("lcy") ||
           !password.equals("123")) {
            errMessage = "名称或密码错误";
            return "failure";
        }
        else {
            return "success";
        }
    }

 }
 

 5.前台页面 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=utf-8"%>
 <html>
 <head>
 <title>第一个JSF程序</title>
 </head> 
 <body>
     <f:view>
        <h:form>
            <h3>请输入您的名称</h3>
            <h:outputText value="#{user.errMessage}"/><p>
           名称: <h:inputText value="#{user.name}"/><p>
           密码: <h:inputSecret value="#{user.password}"/><p>
            <h:commandButton value="送出"
                             action="#{user.verify}"/>
        </h:form>
    </f:view>

 </body>
 </html>

 6. 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>

 7. 直接访问 http://localhost:8080/jsfTest/index.faces

 




分享到:
评论

相关推荐

    jsf快速入门教程

    jsf入门基础,可以让你很轻松的掌握jsf的基础,是不错的入门学习资料,框架的很好的电子图书

    JSF框架入门基础知识

    JSF&Primefaces入门基础知识

    JSF学习笔记,学习jsf的入门课程

    JSF学习笔记,总结了jsf的学习知识点,是学习jsf入门的基础

    jsf简单入门教程

    jsf简单入门教程,包括如何开始创建包含jsf技术的简单项目,jsf的基础知识点

    JSF基础教程 简体中文

    JSF入门如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。 入门 藉由以下的几个主题,可以...

    jsf入门实例教程

    很好的学习jsf入门实例!

    jsf的入门资料

    jsf基础的入门资料

    清晰版--JSF入门.pdf

    清晰版--JSF入门.pdf。都是基础,没啥说的

    JSF教程入门

    主要讲JSF客户端快速入门题材: Web应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web应用程序开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的(stateless)本质,与传统应用程序必须...

    JSF入门必读——JSF入门基础

    Web应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web应用程序开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的 (stateless)本质,与传统应用程序必须维持程序运行过程中的信息有明显的...

    JSF入门教程中文版

    这份资料对于JSF新手很不错,熟悉JSF较快

    jsf开发入门 基础知识

    jsf很好的pdf书···大家都好好看看吧,要好好学习天天向上,为了美好明天而奋斗,实在不想写了,就像赚点积分

    《JSF入门》简体中文版

    jsf框架 jsf轻松入门

    JSF入门及基础知识

    JSF入门基础知识。。 JavaServer Faces 的提出在试图解决这个问题,它试图在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰,它综合了各家厂商...

    JSF的基础入门,JavaServer Faces作为一种新兴的Web表现层框架

    JavaServer Faces作为一种新兴的Web表现层框架,正在受到越来越多的关注...本文描述了JSF的几大优势,以及这些优势所带来的Web开发的重大变革,从而试图 说明JSF将会在众多竞争者中脱颖而出,成为Web表现层框架的主流。

    JSF入门基础

    是我参加培训老师写的例子,很适合JSF入门

    jsf框架使用入门(基础)

    很基础的jsf框架使用,对初学者有一定的帮助

    JSF-1.2入门教程

    这个教程系列讨论 JavaServer Faces(JSF)技术的基础知识。...本系列针对 JSF 的新手,帮助他们快速入门 — 使用 JSF 并不是必需的,但是使用 JSF 组件可以减少工作量。本系列只讨论基础知识并提供大量示例

    jsf的中文入门级别教程

    比较适合jsf的初学者,一些入门基础,标签组件讲解,以及一些实例。。。

    JSFweb开发技术入门基础教程

    网页设计人员要作的就是了解JSF的标签的使用方式,这就像是学习进阶的HTML标 签,另一件事就是与程序设计人员沟通好各个Bean的名称绑定。 ? 标签入门 卷标的相关属性查询,您可以参考 Tag Library Documentation,...

Global site tag (gtag.js) - Google Analytics