`

解开JSF生命周期之谜(1)

阅读更多

1、在恢复视图阶段,如果组件指定了binding属性,如:

 

<rich:dataTable id="myTable" binding="#{myForm.uiData}" 
    value="#{myForm.details}" columns="7" var="detail">

 

那么JSF在恢复组件的时候,会初始化binding属性中指定的bean,假如bean的scope为request则会重新new一个该bean的实例(上面这个例子就是myForm),并根据faces-config.xml中指定的managed-property初始化该bean的各个属性;假如bean的scope为session则直接从session中获取bean的实例。

 

2、在恢复视图阶段,除了恢复组件树中的各个组件外,还会恢复与各个组件关联的事件监听器、验证器以及转换器。

 

3、在应用请求值阶段,事件会广播给对应的事件监听器。当事件源为UIData中的某条记录中的一个组件时,如:

 

 

<rich:dataTable id="myTable" binding="#{myForm.uiData}" 
    value="#{myForm.details}" columns="7" var="detail">
<h:column>
<h:commandButton value="remove" action="#{myForm.remove}"/>
</h:column>
.......
</rich:dataTable>

 

UIData会调用value属性指定的bean(上面这个例子为myForm对象)对应属性(上面这个例子为details属性)的get方法获取数据,如果数据为null或元素数为0,则不会广播该事件,即不会调用action或actionListener属性中指定的方法(上面这个例子为myForm的remove方法),并直接到呈现响应阶段。

 

4、结合上面第1和第3点可以得出以下结论。当事件源为UIData中的某条记录中的一个组件时,如果UIData有指定binding属性,则UIData的value属性指定的bean在faces-config.xml中指定的scope必须为session或application,否则不会执行action或者actionListener属性指定的方法。如果UIData没有指定binding属性,则UIData的value属性指定的bean在faces-config.xml中指定的scope可以为session、application,也可以为request,但要保证可以在request中找到对应的属性。

 

5、<a4j:keepAlive/>是在恢复视图阶段后才将属性值放到request中的。

 

 

分享到:
评论

相关推荐

    JSF生命周期总结JSF生命周期总结

    JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结

    JSF 生命周期 实例详解

    总结来说,JSF请求处理生命周期是其核心特性之一,它简化了Web应用程序开发中的复杂性,特别是在处理用户输入和更新服务器状态方面。通过理解并熟练运用这一生命周期,开发者可以更有效地构建可扩展且易于维护的JSF...

    JSF生命周期及组件开发

    ### JSF生命周期及组件开发详解 #### 一、JSF生命周期概述 JavaServer Faces (JSF) 是一种基于Java EE标准的服务器端组件框架,用于简化企业级Web应用程序的开发。JSF提供了一种声明式的组件化编程模型,使得...

    jsf生命周期学习文档

    【JSF生命周期详解】 JSF(JavaServer Faces)是一种基于Java的Web应用程序开发框架,它以组件为中心,简化了服务器端应用程序的用户界面构建。JSF的核心组成部分包括预定义的UI组件、事件驱动的编程模型以及支持第...

    JSF生命周期的事件处理

    其中,JSF的生命周期管理机制是其核心特性之一,它包括了一系列有序的阶段,每个阶段都可能触发不同的事件,这些事件需要被正确地处理。 #### 一、JSF生命周期概述 在深入了解JSF中的事件处理之前,我们先简要回顾...

    JSF生命周期及组件开发P

    JSF生命周期是指从客户端发起请求到服务器响应的过程,它包括了五个主要阶段:恢复视图、应用请求的值、处理验证、更新模型值、调用程序和处理事件以及进行响应。 1. **恢复视图阶段**: 在这个阶段,JSF框架通过...

    JSF生命周期实例,还要多长啊

    JSF生命周期是理解其工作原理的关键,它包括六个主要阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用逻辑和渲染响应。在这些阶段中,每个阶段都有特定的任务,确保用户输入被正确处理并更新到服务器端...

    jsf生命周期和一部分标签介绍

    **JSF(JavaServer Faces)生命周期详解** JSF是一种用于构建Web应用程序的MVC(Model-View-Controller)框架,由Java Community Process定义并维护。它简化了UI开发,提供了丰富的组件库,并处理了用户输入的验证...

    JSF请求处理生命周期图

    JSF请求处理生命周期图

    JSF 应用程序的生命周期.rar

    **JSF(JavaServer Faces)应用程序的生命周期**是开发者在构建Web应用程序时必须理解的关键概念。JSF是一种Java EE(现在称为Jakarta EE)技术,用于构建用户界面,特别是用于服务器端的交互式Web应用程序。它提供...

    jsf例子\监听器 例子

    本篇文章将深入探讨JSF的事件处理机制,包括值变化事件、动作事件和生命周期事件,以及它们如何影响JSF的生命周期。 1. **值变化事件**: 值变化事件通常发生在用户在输入组件(如`h:inputText`, `h:selectRadio`, ...

    jsf语法及配置大全

    JSF简介 JSF基础 JSF标签 JSF应用程序 JSF生命周期 JSF配置大全

    jsf1.2 source code

    - **生命周期**:JSF有六阶段的生命周期,包括恢复视图、应用请求值、处理验证、更新模型值、调用后处理方法和渲染响应。 - **数据绑定**:JSF使用EL(Expression Language)将组件属性与模型数据绑定,简化了数据...

    JSF简介(xiaobo原创视频).part2.rar

    由于JSF的资源较少,继[JSF视频轻松搞定]后,现在接着发布xiaobo原创视频,希望大家多多支持! 有两部分,这是第一部分,第2个压缩包,共4个压缩包!~

    精通JSF中文教程精通JSF中文教程

    通过深入学习本教程,您将掌握JSF的基础知识,包括组件使用、Managed Beans的创建、EL表达式的运用以及JSF生命周期的理解。结合实际项目实践,您将能够熟练运用JSF来构建高效、稳定的Web应用程序。

    jsf的必读教科书

    本篇文章将基于《JavaServer Faces Specification Version 2.2》文档的关键信息,深入解读JSF 2.2的核心概念、生命周期以及一些关键特性。 #### 二、JSF 2.2 版本概述 JSF 2.2 版本是由Oracle公司发布的一个重要...

    JSF基础教程 简体中文

    要开发 JSF 组件,您需要更深入了解 JSF 的一些处理细节,包括了 JSF 生命周期以及 JSF 框架。 o JSF 生命周期 o 概述自订组件 简单实例 在不考虑组件有子组件的情况下,这边以实际的一个例子来说明开发组件的过程...

    jsf规范

    2. **JSF请求生成JSF响应**:这是最常见的场景,当用户通过JSF组件提交表单时,请求会映射到JSF实现的控制器,然后按生命周期的顺序执行,包括解析请求参数、更新模型值、执行验证和事件处理等。 **生命周期情景** ...

    jsf demo 各种实例

    **JSF生命周期** 包含6个主要阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用业务逻辑和呈现响应。在每个阶段,JSF处理用户的输入、执行验证、更新模型并生成响应。 **JSF示例** 在"jsfdemo"这个...

    JSF教程(有关jsf实例的操作步骤)

    JSF组件经历了六步生命周期:恢复视图、应用请求值、处理验证、更新模型值、调用应用程序和呈现响应。每一步都提供了插入自定义行为的机会,如验证用户输入或执行业务逻辑。 **4. Facelets** Facelets是JSF的标准...

Global site tag (gtag.js) - Google Analytics