所谓的实时事件(Immediate Events),是指JSF视图组件在取得请求中该取得的值之后,即立即处理指定的事件,而不再进行后续的转换器处理、验证器处理、更新模型值等流程。
在JSF的事件模型中会有所谓实时事件,导因于Web应用程序的先天特性不同于GUI程序,所以JSF的事件模式与GUI程序的事件模式仍有相当程度的不同,一个最基本的问题正因为HTTP无状态的特性,使得Web应用程序天生就无法直接唤起伺服端的特定对象。
所有的对象唤起都是在伺服端执行的,至于该唤起什么对象,则是依一个基本的流程:
依客户端传来的session数据或伺服端上的session数据,回复JSF画面组件。
- 套用请求值(Apply Request Values)
JSF画面组件各自获得请求中的值属于自己的值,包括旧的值与新的值。
- 执行验证(Process Validations)
转换为对象并进行验证。
- 更新模型值(Update Model Values)
更新Bean或相关的模型值。
- 唤起应用程序(Invoke Application)
执行应用程序相关逻辑。
对先前的请求处理完之后,产生画面以响应客户端执行结果。
对于动作事件(Action Event)来说,组件的动作事件是在套用请求值阶段就生成ActionEvent对象了,但相关的事件处理并不是马上进行,ActionEvent会先被排入队列,然后必须再通过验证、更新模式值阶段,之后才处理队列中的事件。
这样的流程对于按下按钮然后执行后端的应用程序来说不成问题,但有些事件并不需要这样的流程,例如只影响画面的事件。
举个例子来说,在窗体中可能有使用者名称、密码等字段,并提供有一个地区选项按钮,使用者可以在不填下按钮的情况下,就按下地区选项按钮,如果依照正常的流程,则会进行验证、更新模型值、唤起应用程序等流程,但显然的,使用者名称与密码是空白的,这会引起不必要的错误。
您可以设定组件的事件在套用请求值之后立即被处理,并跳过后续的阶段,直接进行画面绘制以响应请求,对于JSF的input与command组件,都有一个immediate属性可以设定,只要将其设定为true,则指定的事件就成为立即事件
分享到:
相关推荐
### JSF事件类型 JSF支持多种事件类型,这些事件可以在组件之间或应用程序级别触发。例如: - **组件级事件**:发生在特定UI组件上,如点击按钮或选择下拉框选项。 - **应用程序级事件**:在更广泛的范围内传播,...
### JSF生命周期的事件处理 JavaServer Faces(简称JSF)是Java平台提供的一种用于构建企业级Web应用程序的标准框架。JSF通过定义一套简洁而强大的API来帮助开发者更轻松地开发用户界面。其中,JSF的生命周期管理...
**JSF(JavaServer Faces)** 是一种Java平台上的Web应用程序开发框架,它提供了一种组件化和事件驱动的方式来创建用户界面。JSF的核心概念包括组件、事件、渲染器和生命周期,这些元素共同构建了一个强大的MVC...
JSF提供了一个组件模型,允许开发者通过拖放组件的方式来构建用户界面,并通过事件处理和数据绑定来实现业务逻辑。 在JSF中,**组件** 是UI的基础元素,如按钮、文本输入框等。这些组件可以通过XML(Facelets)或...
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
1. **JSF事件类型**:JSF事件可以分为两类:基本事件和自定义事件。基本事件是由JSF框架本身生成的,例如,组件的验证失败、提交请求或渲染响应等。自定义事件则是由开发者根据需求创建的,它们可以是任何有意义的...
JSF事件模型允许在组件之间触发和监听事件。`ActionEvent`是JSF中最常见的事件类型,通常在命令组件(如按钮)被点击时触发。通过实现`ActionListener`接口,开发者可以处理这些事件。 ### 7. 视图状态管理 JSF...
《JSF入门简体中文版》是学习JSF的基础,它涵盖了JSF的基本架构、组件库、生命周期和事件处理等方面。书中会介绍如何创建一个简单的JSF应用程序,设置开发环境,以及如何使用JSF的UI组件来构建动态网页。此外,还会...
在这个项目中,开发者可能自定义了JSF的监听器和处理器,以处理文件上传事件。监听器会检测文件上传的开始和结束,而处理器则负责处理每个文件块的上传,并在所有块都成功上传后将它们合并成原始文件。这个过程可能...
这些组件会触发一个后台动作事件,以便更新当前显示的数据页。 2. **后端处理**: 后端处理主要在ManagedBean中进行,这里我们需要维护当前页数、每页记录数、总记录数等状态。分页逻辑通常包含以下步骤: - 计算...
动作事件通常与用户界面的按钮或者链接点击相关,即时事件是组件状态变化立即触发的事件,值变事件是在用户输入后触发验证的事件,而Phase事件则涉及到JSF请求处理生命周期的各个阶段。 JSF还能够与多种开发工具和...
o 实时事件 o 值变事件 o Phase 事件 JSF 标签 网页设计人员要作的就是了解JSF的标签的使用方式,这就像是学习进阶的HTML标签,另一件事就是与程序设计人员沟通好各个Bean的名称绑定。 标签入门 卷标的相关...
事件驱动模型是JSF框架的灵魂,它将Web应用的交互过程转换为事件处理机制,极大地简化了开发者的工作。在JSF中,UI组件不仅可以作为事件的来源,也可以作为事件的监听者。例如,当用户点击按钮时,该按钮作为事件源...
它提供了一种组件化和事件驱动的方式来创建交互式的Web界面。JSF API 和 JSF Impl 是JSF框架的核心组成部分。 **jsf-api.jar** 文件包含JSF框架的接口和抽象类,这些定义了JSF应用开发所需的主要API。开发者通常...
学习这部分,你需要了解如何导入和使用JSF的库,例如`javax.faces.*`和`org.primefaces.*`,以及它们提供的功能,如数据验证、转换器、事件处理等。 4. **Ajax4JSF使用手册**:Ajax4JSF是JSF的一个扩展,它为JSF...
但是,根据上下文,我们可以推断文档可能包含有关JSF的详细教程或参考资料,比如如何配置JSF环境、创建JSF组件、处理用户事件以及调试JSF应用程序等内容。 总的来说,JSF是一个强大的工具,它为Java开发者提供了...
3. **事件参数传递**:JSF支持事件驱动的编程模型,如`valueChange`事件。当用户界面组件的值发生变化时,可以触发事件并传递参数。你可以定义一个监听器方法来处理这些事件,参数通常会作为方法的输入。 4. **EL...
2. **事件驱动**:用户交互触发事件,JSF会处理这些事件并调用对应的处理方法。 3. **可扩展性**:JSF允许开发者自定义组件和行为,以适应特定需求。 4. **与Java EE集成**:JSF可以与其他Java EE技术如EJB、JPA、...