ADF_ManagedBean的概念和管理(概念)

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

posted on 2015-03-28 21:57  东方瀚海  阅读(1098)  评论(0编辑  收藏  举报