zoukankan      html  css  js  c++  java
  • JavaServer Faces技术

    一、JSF是构建Java Web程序的服务器端的组件框架,包括:

    1)一个API,用来表示组件及管理他们的状态;处理事件;服务器端;数据转换;定义页面导航;支持国际化和可访问性;并且提供对以上功能API的扩展。

    2)一个标签库,用来把组件添加到页面,并且可以把组件与服务器端对象连接起来。

    二、JSF提供了一个定义良好的编程模型以及不同的标签库,只要付出很少的努力,就可以做到:

    1)创建Web页面;

    2)通过组件标签把组件到Web页面;

    3)绑定页面上组件到服务器端对象上;

    4)重用及扩展自定义组件;

    5)Save and restore application state beyond the life of server requests;

    三、JSF Application

    JSF应用和其他的Web应用提供的功能类似,一个典型的JSF应用包括以下部分:

    1)Web页面的集合,在页面上放置了很多组件。

    2)标签集合,用来把组件添加到页面上。

    3)Managed Beans集合(Container管理的POJOs),这些Beans是作为页面上组件的支撑,用来描述组件的属性和功能。

    4)web.xml

    5)(可选)一个或多个资源配置文件,比如faces-config.xml,用来定义页面导航规则,配置Bean和自定义对象(如自定义组件)。

    6)(可选)自定义对象的集合,如自定义组件,Converter,Validator,Listener等。

    7)(可选)自定义标签的集合,应用在页面上表示自定义的对象。

    四、JSF技术的优点

    JSF技术的最大优点就是把表现层和逻辑层分开了。JSF技术中包含了Facelets技术,Facelets技术有以下优点:

    1)代码可以重用和被扩展,通过组件模版和组合组件。

    2)可以通过注解的方式注册一个Managed Bean作为资源提供给JSF应用。

    3)最重要的,JSF提供了丰富的架构来管理组件状态,处理组件数据,验证用户输入和处理事件。

     五、JSF的UI组件模型

    JSF组件包括UI组件和非UI组件,UI组件是可重用和可配置的,可以是简单的组件比如一个Button,也可以是复合组件比如由多个组件组成的Table。

    JSF提供了丰富和灵活的UI组件架构,包括:

    1)javax.faces.component.UIComponent类集合,定了UI组件的状态和行为;

    2)一个渲染(rendering)模型,定义如何以不同方式来渲染一个组件。

    3)一个转换(conversion)模型,定义如何注册Convertor到一个组件上。

    4)一个事件及监听模型,定义如何处理一个组件上的事件。

    5)一个验证(validation)模型,定义如何注册一个Validator到一个组件上。

    六、JSF的页面导航模型

    页面导航就是决定下一个显示的页面或者的视图的一系列规则。JSF页面导航规则,可以是隐式的,也是由用户显式的自定义。

    隐式的比如:<h:commandButton value="submit" action="response">,当按下按钮,页面导航到名字为response的页面上。

    用户自定义的导航规则是在资源配置文件中配置的,比如:faces-config.xml中就可以配置。导航规则的默认格式为:

    <navigation-rule>
        <description></description
        <from-view-id></from-view-id>
        <navigation-case>
            <from-action></from-action>
            <from-outcome></from-outcome>
            <if></if>
            <to-view-id></to-view-id>
        </navigation-case>
    </navigation-rule>

    显式导航的过程是这样的:

    1)NavigationHandler 根据from-view-id选择一个与当前页匹配的规则;

    2)同时匹配action和outcome,如果成功,显示to-view-id对应的页面;

    3)如果同时匹配失败,直接匹配outcome,如果成功,显示to-view-id对应的页面;

    4)如果匹配outcome失败,直接匹配action,如果成功,显示to-view-id对应的页面;

    5)如果都失败,继续显示当前页面。

    七、JSF应用的生命周期

    一个JSF页面代表一个组件树,称为一个视图(view)。

    JSF应用的生命周期从客户端向一个页面发起HTTP请求开始,到服务端返回一个HTML页面给客户端结束。

    这个过程可以分为两个主要的阶段:执行阶段(execute)和渲染阶段(render)。执行阶段又可以进一步划分成

    多个子阶段,用来支持复杂的组件树。具体来说包括以下几个子阶段:

    1)重建视图阶段(Restore View);

    2)应用请求值阶段(Apply Request Value);

    3)处理验证阶段(Process Validation);

    4)更新模型值阶段(Update Model Value);

    5)触发应用阶段(Invoke Application);

    6)渲染响应阶段(Render Response)。

  • 相关阅读:
    推销员问题
    string类实现
    链表倒数第k个节点
    设计模式之单例模式大全
    空类 sizeof 为什么是1
    类的三种继承方式
    单例模式典型创建方法(三种)
    虚函数实现
    链表删除结点
    TCP的状态转移
  • 原文地址:https://www.cnblogs.com/winson/p/3259926.html
Copyright © 2011-2022 走看看