20150623 Created By BaoXinjian
一、摘要
ManagedBean基本概念
二、ManagedBean Scope概念
主要说明ADF的ManagedBean中的不同Scope。
由于ADF Controller是在JSF的基础上扩展而来的,因此,在ADF中,在包含了JSF的三种Scope的基础上,又扩展出了另外三种Scope,使ADF Controller在实际应用中更为灵活和方便。
1. JSF标准Scope
(1). applicationScope
(2). sessionScope
(3). requestScope
2. ADF Controller扩展Scope
(1). pageFlowScope
(2). backingBeanScope
(3). viewScope
三、ManagedBean Scope解析
下面将针对每种Scope进行详细说明,以作用域由大到小排列。
1. applicationScope
就从字面意思就可以看出,applicationScope是作用范围最广的,在作用于整个应用的运行周期内。
通常情况 下,applicationScope中的参数等都是在应用启动(web server启动)时即被初始化。
因此,一般对于独立于特定的职责和角色的,且需要在整个应用的周期内都需要的资源会定义在 applicationScope的ManagedBean中。
2. sessionScope
仅次于 applicationScope的是sessionScope,sessionScope作用于从用户登录开始到用户主动结束该session,
一般来 说,都会为session设置超时时间,若超过服务器设置的超时时间的话,则该session被自动释放。
在实际的应用中,经常会将类似于用户信息,预置 文件信息或授权信息等设置到session中。
3. requestScope
requestScope的作用周期是在一次request之内,
只要是在同一个request内,即使是在不同的页面也可以访问到作用在requestScope的内容。
4. pageFlowScope
在 ADF中引入了Task-Flow的概念, pageFlowScope作用于同一个Task Flow中,
例:分别有A/B/C三个页面,同属于一个Task Flow,D页面不属于该Task Flow,
且A/B/C三个页面可以通过定义的action相互进行导航,同时也可以从这三个页面导航到D页面,建立pageFlowScope的Managed Bean此时,A/B/C三个页面可以同时访问到该Managed Bean中的属性。
5. viewScope
viewScope是指view id发生更改之前都可用,即作用于同一页面内,
例如,在不同页面之间跳转时,viewScope的Managed Bean中的数据都会丢失。
6. backingBeanScope
backingBeanScope 多用于page fragments和declarative components,由于同一个页面中可能会拥有多个page fragments或declarative components,
因此,为了避免相互之间数据冲突,可以考虑使用backingBeanScope的Managed Bean。
7. none
none的意思是说,即使在同一个页面,也不能访问到彼此none scope的Managed Bean中的属性。
8. 下面是上述六种Scope的生命周期示意图:
Thanks and Regards
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建