JSF中的控件基本都有immediate属性,对于这个属性的使用总结如下,更详细内容可参考Oracle官方文档。
1,为了更好的理解immediate属性,先看一下JSF页面的生命周期:
JSF页面的生命周期有六个,可参考下面的图;ADF页面是建立在JSF页面基础上的,它的生命周期包括JSF页面的六个生命周期外,还包括Init Context and Prepare Model、Validate Model Updates、Metadata Commit和Prepare Render几个阶段。JSPX页面具有JSF页面的生命周期还是具有ADF页面的生命周期,要看页面是在faces-config.xml还是 adfc-config.xml中管理的。对于生命周期的详细内容可参考Oracle官方的ADF开发手册。
2,控件的immediate属性与控件(component)的转换校验逻辑关系紧密。通常,页面控件中的值在Process Validations阶段进行转换校验(可参考<af:inputListOfValues>的API);当设置一个控件的immediate属性为true的时候,控件中的值将会提前在Apply Request Values阶段进行转换校验。
1) 对于输入控件,immediate为true的时候,该控件的输入值的校验会比immediate为false的早,可以理解为立即执行校验。当该控件上的校验失败的时候,该控件所在页面的生命周期直接跳转到Render Response阶段,并且所有immediate为false的控件都不执行校验操作;如果控件上的校验成功,并且控件的newValue与oldValue不同,就会在Apply Request Values阶段触发一个ValueChangeEvent,而不是常规模式下的Process Validations阶段,并且这个ValueChangeEvent的执行也早于这个控件上的其他ActionListener。
2) 对于命令控件,如果immediate为true,页面的生命周期直接跳转到Render Response阶段,忽略掉validation和model update等阶段。经常使用的是Cancel按钮。
Reference:
Oracle Fusion Middleware 11g: Build Applications with ADF I(Volume I • Student Guide)(D53979GC11)
http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e12419/tagdoc/af_inputListOfValues.html
Fusion Developer's Guide for Oracle Application Development
分享到:
相关推荐
JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结
jsf 控件速查手册,html格式。jsf标签使用培训教程。新手速查教程!
jsf 控件的说明,很实用
jsf控件的详细说明,内涵2个word文档,说明非常详细,适用,开发必备。
本例子演示了。jsf常用控件的例子。很好的。包括jsf大部分控件
JSF 生命周期 实例详解 非常不错的介绍
JSF日历控件
jsf控件速查手册jsf控件速查手册jsf控件速查手册jsf控件速查手册
本文档将针对BIMP平台使用到的常见JSF Facelets标签集合进行阐述,供开发者日常开发工作期间参考。BIMP主要采用JSF(Facelets)前端组件技术实施Web 2.0,以提升用户体验,并达到快速、高质量实施产品或项目研发目的...
JSF请求处理生命周期图
JSF生命周期及组件开发
JSF生命周期及组件开发P
JSF 应用程序的生命周期.rar
jsf生命周期和一部分标签介绍是我自己总结的,还没有总结玩,下次把完整的提供给大家
JSF简介 JSF基础 JSF标签 JSF应用程序 JSF生命周期 JSF配置大全
JSF分页控件 ,支持大容量可查询分页 具体的分页可继承PagerBean
自己整理的,参考了网上的一些资料。还算比较清楚吧,生命周期图,有中文有英文。方便理解。
JSF是一种用于构建Java ... 包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 Java Server Faces技术的重要开发框架 sun-ri、myfaces、icefaces、richfaces、seam