ADF Managed Bean
来源:互联网 发布:unity3d android 调试 编辑:程序博客网 时间:2024/06/04 18:51
ADF Managed Bean 与JSF Managed Bean在概念上没有什么不同,有关Managed Bean的概念请参考《JSF Managed Bean 》。
二者主要的不同点在于Memory Scope,ADF ManagedBean的Scope比JSF Managed Bean多了pageFlowScope、viewScope、backingBeanScope。
Managed Bean可以定义在三个文件中:adfc-config.xml,Task flow XML definition file,faces-config.xml。
它们的区别如下:
1. adfc-config.xml
(1)对于unbounded task flow,会先检查faces-config.xml再检查adfc-config.xml。
(2)Request-scoped managed beans优先于session-scoped managed beans。
比如定义在adfc-config.xml的Request Scope的Bean,优先级高于定义在Task flow中的Session Scope的同名Bean。
(3)已经初始化的managed beans优先于还未初始化的managed beans。
比如一个已经初始化的session-scoped managed bean,优先级高于定义在task flow中的request-scoped的同名Bean。
2. 定义在task flow中
(1)定义在task flow中的managed beans只在该task flow中可见。
(2)对于unbounded task flow,会先检查faces-config.xml再检查adfc-config.xml,并且仅限于application-scoped 和session-scoped的managed bean。
(3)Request-scoped managed beans优先于session-scoped managed beans。
比如定义在adfc-config.xml的Request Scope的Bean,优先级高于定义在Task flow中的Session Scope的同名Bean。
(4)已经初始化的managed beans优先于还未初始化的managed beans。
比如一个已经初始化的session-scoped managed bean,优先级高于定义在task flow中的request-scoped的同名Bean。
3. faces-config.xml
(1)只能定义JSF标准规范的四种Scope。
(2)在faces-config.xml中定义的managed bean优先级别最高,比定义在adfc-config.xml和task flow中的managed bean都高。
3. faces-config.xml
Managed Bean 最佳使用实践:
(1)对于Fusion Web Application,不要在faces-config.xml中定义任何managed bean。
(2)如果一个Bean可能会被多个页面或多个task flow使用,将其定义在adfc-config.xml中。
(3)如果一个Bean只会在一个特定的task flow中使用,将其定义在该task flow xml定义中。
(4)managed bean中应该只有与UI组件相关的逻辑,处理业务数据的逻辑应该交给业务服务层去做。
这样业务服务层的逻辑可以通过DataControl暴露出来,供managed bean使用。
参考文献:
1. http://eleven-china.blogspot.com/2009/01/adf-managedbean-scope.html
2. http://blog.csdn.net/luyushuang/article/details/6774399
二者主要的不同点在于Memory Scope,ADF ManagedBean的Scope比JSF Managed Bean多了pageFlowScope、viewScope、backingBeanScope。
- pageFlowScope
Managed Bean在Task Flow中的所有Page可见,且访问的同一个实例。
如果其它Task Flow中的Page访问该Managed Bean,将会创建一个新实例,供这个Task Flow中的所有Page使用。 - viewScope
只在当前这个View(可能是root browser window,也可能是region)可见,当viewId发生改变后,该Managed Bean被释放掉。 - backingBeanScope
一个Page中含有一个Task Flow,并且这个Task Flow使用了多个region,设置此值可以起到隔离各个region的作用(会在每个region中创建一个实例),避免数据冲突。
backingBeanScope多用于page fragments和declarative components,因为同一个页面中可能会拥有多个此类对象。
Managed Bean可以定义在三个文件中:adfc-config.xml,Task flow XML definition file,faces-config.xml。
它们的区别如下:
1. adfc-config.xml
(1)对于unbounded task flow,会先检查faces-config.xml再检查adfc-config.xml。
(2)Request-scoped managed beans优先于session-scoped managed beans。
比如定义在adfc-config.xml的Request Scope的Bean,优先级高于定义在Task flow中的Session Scope的同名Bean。
(3)已经初始化的managed beans优先于还未初始化的managed beans。
比如一个已经初始化的session-scoped managed bean,优先级高于定义在task flow中的request-scoped的同名Bean。
2. 定义在task flow中
(1)定义在task flow中的managed beans只在该task flow中可见。
(2)对于unbounded task flow,会先检查faces-config.xml再检查adfc-config.xml,并且仅限于application-scoped 和session-scoped的managed bean。
(3)Request-scoped managed beans优先于session-scoped managed beans。
比如定义在adfc-config.xml的Request Scope的Bean,优先级高于定义在Task flow中的Session Scope的同名Bean。
(4)已经初始化的managed beans优先于还未初始化的managed beans。
比如一个已经初始化的session-scoped managed bean,优先级高于定义在task flow中的request-scoped的同名Bean。
3. faces-config.xml
(1)只能定义JSF标准规范的四种Scope。
(2)在faces-config.xml中定义的managed bean优先级别最高,比定义在adfc-config.xml和task flow中的managed bean都高。
3. faces-config.xml
Managed Bean 最佳使用实践:
(1)对于Fusion Web Application,不要在faces-config.xml中定义任何managed bean。
(2)如果一个Bean可能会被多个页面或多个task flow使用,将其定义在adfc-config.xml中。
(3)如果一个Bean只会在一个特定的task flow中使用,将其定义在该task flow xml定义中。
(4)managed bean中应该只有与UI组件相关的逻辑,处理业务数据的逻辑应该交给业务服务层去做。
这样业务服务层的逻辑可以通过DataControl暴露出来,供managed bean使用。
参考文献:
1. http://eleven-china.blogspot.com/2009/01/adf-managedbean-scope.html
2. http://blog.csdn.net/luyushuang/article/details/6774399
3. http://jjzheng.blogspot.com/2011/06/adf-managed-bean-memory-scope-and-its.html
from:
http://maping930883.blogspot.com/2009/09/adf009adf-managed-bean.html
0 0
- ADF Managed Bean
- ADF Managed Bean
- ADF: managed bean 和 backing bean
- ADF: managed bean 和 backing bean的区别
- 在Managed Bean中给ADF RichTable排序
- 在Managed Bean中给ADF RichTable排序
- managed bean
- JSF Managed Bean
- 在Bean(java类)中如何取到jspx中Bindings的数据?How to get the ADF BindingContainer in a managed bean?
- JSF2.0中的managed bean生命周期
- JSF2.0的 managed bean 的组成
- 使用Managed Bean访问各个Scope变量
- 组件自动绑定到Managed Bean功能
- JSF2.0中的managed bean生命周期
- 使用Managed Bean访问各个Scope变量
- JSF2.0中的managed bean生命周期
- ADF: 理解Manage bean 的scope
- ADF backing Bean中常用的代码
- hdu4542 && ZOJ2562(反素数)
- 社説 20150810 就活本格化 学生の負担軽減を優先したい
- Java注释(包含javadoc工具的使用)
- 9.1网络-socket1_TCP通信 2015/8/7
- JAVA计算器——摘自Java核心技术
- ADF Managed Bean
- 关于spring文件上传的配置
- 积跬步,聚小流------Bootstrap学习记录(1)
- 如何应用MQTT协议到物联网中(IOT)
- The method makeText(Context, int, int) in the type Toast is not applicable for the arguments (new Vi
- java小程序: 简易计算器
- RPG2.0战斗框架学习2
- 36 最长公共子序列【lcs】
- vs2013 error c4996: 'fopen': This function or variable may be unsafe