JSF控件的immediate属性和页面生命周期
来源:互联网 发布:单片机使用教程 编辑:程序博客网 时间:2024/05/16 17:36
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控件的immediate属性和页面生命周期
- JSF控件的immediate属性和页面生命周期
- JSF的immediate属性
- JSF的immediate属性
- JSF 中关于 immediate 属性
- JSF的事件和生命周期
- JSF的生命周期 (图例JSF的生命周期)
- JSF 应用程序的生命周期
- JSF 应用程序的生命周期
- JSF 应用程序的生命周期
- 切入JSF的生命周期
- JSF的生命周期
- JSF 应用程序的生命周期
- JSF的生命周期
- 怀疑论者的 JSF: JSF 应用程序的生命周期
- JSF中UI控件binding属性的用法
- 浅谈JSF的生命周期和对ajax处理的影响
- 浅谈JSF的生命周期和对ajax处理的影响
- Project manage_maven3安装,配置
- 面试心得(简历书写)
- ADF中调用PLSQL存储过程和函数
- UVA - 10118 Free Candies
- 网络赛长春赛区1004 数论,概率
- JSF控件的immediate属性和页面生命周期
- Struts2与OGNL
- java登录界面
- HDU 4081 Qin Shi Huang's National Road System 最小生成树变形
- 2013年9月28号
- [C语言]菜鸟的一些理解-指针
- PHP中使用cookie和session
- Mybatis3.2.3 知识点快速摘要
- jQuery.proxy()代理、回调方法