关于Immediate属性的使用(注意)----ADF Faces入门(文档阅读)
来源:互联网 发布:vscode debug npm 编辑:程序博客网 时间:2024/06/01 09:49
Immediate属性是个神秘而又好用的东西。下列简称为I
你可以使用I去在生命周期的Apply Request Values阶段使对组件的访问升级。当actionSource组件被设置为I的时候,事件会被交付于Apply Request Values阶段而不是Invoke Application。actionListener会调用Render Response阶段,并且validation和model update两个阶段会被跳过。
假定你设置一个取消按钮为I,使action返回一个字符串并且导航回去到前一个界面。由于取消按钮是设置为I的,当用户点击取消按钮的时候,所有的验证都会被跳过,并且没有任何页面输入的值更新到model,用户就可以预期的导航回去了。
PS:话说来,即使一个按钮不进行任何导航,如果它被设置为I的话,它同样会跳过生命周期中间的几个阶段,直接到最后一步,XXXXXX阶段都会被跳过,因此不会有任何新的值被push到服务器。
生命周期流程如下:
和命令组件一样,对于那些可关闭的组件,editableValueHolder的组件等等,事件同样在Apply Request Values阶段交付。然而对于editableValueHolder组件来说,不同于其他组件,它不是跳过验证,转换等步骤,而是在生命周期中提前执行了(原先是在Process
Validations阶段之后),在Apply Request Values阶段就执行了,因此没有任何生命周期的步骤被跳过。
在一个或多个组件需要在别的组件之前进行验证的情况下,设置I是非常有用的。在相同的页面当中,如果被设置I的页面验证不通过了,其他组件就可以不用进行验证了,因此也就减少了页面中显示的错误的数量。
性能提示:在某些地方设置I会提高性能。
1。当你创建一个导航链并且拥有一个commandNavigationItem在导航组件中的时候,你需要去设置I去避免当导航到下一页的时候处理当前页的数据。
2。如果有一个input组件需要在所有其他组件之前进行验证,I应该被设置为true。任何错误可以在生命周期中提前察觉并且避免了其他额外的处理。看下面例子吧:
有两个输入框以及两个按钮组成的form,第一个输入框以及按钮是作为输入查询信息以供查询的的,他两的I被设置为true,另一对输入框及按钮是日期用以输入日期用以save
我们这个form在运行时候,根据用户输入的数据不同,生命周期的走势如何吧
操作步骤:
1.输入binky到日期输入框(不合法的数据)
2.输入dress到查询输入框
3.点击查询按钮执行查询dress
4.点击保存按钮执行保存binky作为日期
表示不解,上面生命周期走向!!!!
在相同页面中对editableValueHolder 以及actionSource组件设置I属性的时候,应注意以下问题:
1.如果一个editableValueHolder组件被标记I属性为true,它就会在Update Model阶段之前执行。这个时候当有一个I的actionSource组件需要从 一个editableValueHolder组件中获取数据会出现问题,正如editableValueHolder输入的数据在Update Model Values之前是不合法的。如果你有一个I的actionSource组件,并且这个组件需要获取数据,这时候也将需要的数据的editableValueHolder 区域也设置为I。然后,你可以对editableValueHolder 调用getValue方法,这时候会返回local值。它还没被pushed到服务器端,但是它在组件中是合法的。
2. 如果一个为I的editableValueHolder组件验证失败,所有为I的actionSource组件仍然会执行。
- 关于Immediate属性的使用(注意)----ADF Faces入门(文档阅读)
- JSF的生命周期--ADF Faces入门(文档阅读)
- 在客户端访问组件属性----ADF Faces入门(文档阅读)
- 优化(optimized)生命周期----ADF Faces入门(文档阅读)
- 监听客户端事件----ADF Faces入门(文档阅读)
- 实例化客户端组件----ADF Faces入门(文档阅读)
- Render和visible----------ADF Faces入门(文档阅读)
- 国际化及本地化页面---------ADF Faces入门(文档阅读)
- Render和visible----------ADF Faces入门(文档阅读)
- 使用ADF Faces 之一:开发用户界面(基于AJAX)
- 使用ADF Faces 开发用户界面
- 总结ADF Faces 中使用到的一些 JavaScript
- 总结ADF Faces 中使用到的一些 JavaScript
- ADF FACES 部分页面渲染(PPR)技术
- 在Eclipse中使用ADF Faces和ADF task flow
- ADF Faces Ajax组件的示例应用程序
- ADF Faces 小疑问+ADF调用JS的一些方法
- 使用 JSF 开发基于 Ajax 的用户界面:ADF Faces 富客户端组件简介
- 在正确的道路上犯错
- 比较各种装箱试探方法实现文件C语言
- 队列头文件C语言
- 队列实现文件C语言
- Discuz修改登录后跳转页面
- 关于Immediate属性的使用(注意)----ADF Faces入门(文档阅读)
- hdu_2276_构造矩阵_快速幂乘
- crux安装后记
- aaaaaaa
- 2011年1月20日,学习日记,面向对象(上)
- IBM HACMP 系列 -- 安装和配置一
- CArray,CMap,CList 速度比较
- 我的C++入门
- 在VC++中如何实现显示桌面的功能即全部最小化显示桌面(整理收集)