0 0

jsf 中 immidiate属性到底是做什么的?哪位大侠解释下?5

<h:inputText value="#{paymentAction.entity.description}" 
required="#{paymentAction.entity.acPaymentTermStatus.code eq 2 and empty paymentAction.entity.description}"     immediate="true">
<a:support ajaxSingle="true" event="onchange" immediate = "true"/>
</h:inputText>
2011年11月10日 10:05

1个答案 按时间排序 按投票排序

0 0

jsf主要有5个生命周期,

引用
RESTORE_VIEW:查找原有的view ,恢复原有的状态,如果没有,则调用ViewHandler.createView,如果为post操作,则按照顺序执行各个阶段。
否则执行RENDER_RESPONSE阶段。

APPLY_REQUEST_VALUES:读取客户端参数,处理各个组件的processDecodes方法,内部调用decode方法,由Renderer执行decode方法

PROCESS_VALIDATIONS:执行组件的processValidators方法,对于UIInput执行validate方法,用于绑定值,调用convert,和validate

UPDATE_MODEL_VALUES:执行组件的processUpdates方法,对于UIViewRoot,执行broadcastEvents和notifyPhaseListeners
所有的UIInput,执行updateModel方法。

INVOKE_APPLICATION:调用UIViewRoot.processApplication方法。这一过程主要读取相应的action配置,如果存在action,则调用action,也就是调用应用逻辑。在执行完相应的逻辑后,查询action是否返回值,如果有,由navigationHandler去读取下一个view id。
RENDER_RESPONSE:展示view,调用ViewHandler.renderView,展示view。

每个阶段定义定义的都比较清晰,有一点需要注意的是,在处理请求时,并不一定会执行每个阶段,可能其中会直接跳到最后的render response阶段。举例来说,如果validator时,存在错误信息,那么就会直接到render response阶段,而下一个阶段不会执行。


引用
使用immediate属性目的:
1.允许一个commandLink或commandButton浏览到另一个页面,而不处理当前页面输入域的任何数据,即使有验证错误.Cancel按钮,通常属于这一类;
2.允许commandLink或commandButton触发后端逻辑,而忽略页面上的一些字段验证。这是最普遍的应用。
例如:下面的code,按钮执行导航并没有验证required域
<h:inputText id="it" required="true"/>
<t:message for="it"/>
<t:commandButton value="submit" immediate="true" action="welcome"/>
3.使一个或多个输入组件优先验证,如果它们中的任何是无效的,那么就不会执行其他输入组件的验证,这样可以减少错误信息的显示
例如下面的代码,仅对第一个组件进行验证,尽管它们都是required,而当第一个验证通过时,才会执行第二个组件的验证
<h:inputText id="it1" immediate="true" required="true"/>
<h:inputText id="it2" required="true"/>
<t:message for="it1"/>
<t:message for="it2"/>
<t:commandButton value="submit" action="welcome"/>
许多开发人员认为,使用组件的immediate属性可以跳过“处理验证”阶段。事实并非如此,使用immediate属性会让事件在应用请求值阶段被处理
而在<rich:menuItem value="#{msgs.save }"
actionListener="#{pc_OrganizationAdd.organizationAddActionListener}"
immediate="false" submitMode="ajax"
data="#{pc_OrganizationAdd.msg }"
oncomplete="handleResponse(data)" />中如果设置immediate="true",则无法获取form中数据




用了immediate之后,action

2011年11月10日 10:24

相关推荐

    JSF中文教程jsf

    **数据绑定** 是JSF的一个关键特性,它将组件的值与后台bean的属性直接关联。这使得界面的更改能够直接影响到模型,反之亦然。**Managed Beans** 是JSF中的业务逻辑载体,它们负责处理应用的业务规则和数据管理。 *...

    jsf 中文文档 jsf 中文文档

    - **EL 介绍**:EL 是一种轻量级的语言,用于在 JSF 页面中访问 Managed Beans 的属性或方法。 - **EL 示例**:如 `${bean.property}` 可以获取 Managed Bean 中名为 `property` 的属性值。 **1.6 国际化信息** - ...

    JSF中文教程.zip

    4. **EL(Expression Language)**:EL是JSF中用于访问JavaBean属性的简洁表达式语法,它可以方便地在视图层与模型层之间传递数据。 5. **Managed Beans**:Managed Beans是JSF中的核心业务对象,它们存储和处理...

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

    EL是一种简洁的脚本语言,用于在JSF中获取和设置Managed Beans的属性值。它允许在JSF视图中直接引用后台Bean的属性,简化了数据绑定的过程。 **6. 视图和导航** JSF的视图通常由Facelets文件(.xhtml)组成,它们...

    JSF中文教程+JSF参数传递方式

    本教程将深入探讨JSF的核心概念以及如何在JSF应用中传递参数,帮助开发者更好地理解和掌握这一技术。 首先,让我们理解**JSF的基本架构**。JSF的核心组件包括视图、控制器和模型,它们共同构成了MVC(Model-View-...

    jsf 中文帮助文档

    API文档详细解释了这些组件的工作方式,以及如何在项目中正确使用它们。通过API,你可以了解如`UIComponent`、`ManagedBean`、`PhaseListener`等关键概念,这些都是构建JSF应用程序的基础。 **Java** 是JSF的底层...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...

    jsf中文使用教程jsf中文使用教程

    5. JSF生命周期的详细解释。 6. 组件的使用,包括事件处理和数据绑定。 7. 自定义组件和扩展JSF的指南。 8. 验证和转换机制的实现。 9. 国际化和本地化设置,包括中文环境的配置。 掌握JSF将使你能够更高效地开发...

    jsf第一个例子 jsf架包 jsf实例

    5. **EL(Expression Language)**:EL是用于获取和设置Managed Beans属性的简洁语法,常用于JSF页面中绑定组件的值。 6. **jsf架包**:JSF相关的库通常被打包成JAR文件,这些文件包含了JSF API和实现。在Java项目...

    JSF入门(中文pdf)

    JavaScript全栈框架(JSF,JavaServer Faces)是Oracle公司主导开发的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。本资源提供了一份详细的JSF入门中文PDF教程,旨在帮助初学者快速理解并掌握JSF的...

    JSF中文问题解决方法完整版

    在IT行业中,JavaScript框架(JSF,JavaServer Faces)是一种广泛应用的用于构建Web应用程序的UI层技术。这篇博文“JSF中文问题解决方法完整版”提供了关于如何处理JSF框架在处理中文字符时可能出现的问题的解决方案...

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    1. **前端界面**:使用JSF的UI组件(如`&lt;p:fileUpload&gt;`)创建上传表单,设置相关的属性,如允许的文件类型、大小限制等。 2. **后端处理**:在Managed Bean中定义方法处理文件上传事件,接收`FileUploadEvent`对象...

    jsf分页 jsf分页 jsf分页

    在JavaServer Faces (JSF)框架中,分页是一种常用的技术,用于处理大量数据时提供更好的用户体验。当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个...

    JSF帮助文档

    JavaScript Faces (JSF) 是Java平台上用于构建企业级Web应用程序的一种服务器端的用户界面框架。JSF 是Java Community Process (JCP) 规范的一部分,最初由Sun Microsystems开发,现在由Oracle公司维护。JSF的核心...

    开发JSF所需要的jar包

    EL使得开发者可以在JSF页面上直接引用后台bean的属性,简化了数据绑定。 4. **Servlet Container Dependencies**: JSF运行在Servlet容器(如Tomcat、Jetty)之上,所以需要一些相关的依赖,如`javax.servlet-api....

    JSF文件下载实现

    在本文中,我们将深入探讨如何使用JSF来实现在Web应用程序中下载文件的功能。主要涉及的关键知识点包括: 1. **JSF上下文环境获取**: 在`downloadFile`方法中,首先通过`FacesContext.getCurrentInstance()`获取...

    用jsf做的登录注册的组件

    在JSF中,可以通过EL(Expression Language)来绑定组件值到后台Bean的属性,实现数据的双向绑定。 4. **验证**:JSF提供内置的验证机制,例如在注册时检查用户名是否已存在,密码是否符合复杂性要求等。这可以通过...

    JSF包,jsf包,JSF包,jsf包

    **JSF(JavaServer Faces)** 是一种Java平台上的Web应用程序开发框架,它提供了一种组件化和事件驱动的方式来创建用户界面。JSF的核心概念包括组件、事件、渲染器和生命周期,这些元素共同构建了一个强大的MVC...

    用JSF1.2实现迭代,循环标签(还是组件?)

    在给定的标题和描述中,提到的是如何在JSF 1.2环境下使用类似Struts的迭代和循环功能,结合Ajax技术增强用户体验。 首先,JSF 1.2提供了 `&lt;ui:repeat&gt;` 标签,它是用来替代JSP中的 `&lt;c:forEach&gt;` 标签进行循环遍历...

    jsf实例jsf实例 JSF学习 JSF jar包 JSF

    jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF

Global site tag (gtag.js) - Google Analytics