您的位置:首页 > 数据库 > Oracle

关于Oracle ADF 11g的传值给bounded task flow

2015-08-21 15:01 453 查看


(关于Oracle ADF 11g的传值给bounded task flow

2010-10-20 16:53:03)


转载▼

标签:


it

分类: ADF开发
对于bounded task flow来说,其managedBean只对这个bounded task flow可见,也就是说bounded task flow中的Fragement或者page才可以操作bounded task flow的managedBean,但有时候bounded task flow中需要根据unbounded task flow的变量来做判断,这时候就需要传入参数给bounded task flow了。关于这个做了个简单的例子。

首先bounded task flow需要定义parameter,name和value一般对应就行了,当然类型可以随便定义,可以是个String,也可以是个Object。

<input-parameter-definition id="__1">

<name id="__2">test</name>

<value>#{pageFlowScope.Test}</value>

<class>java.lang.String</class>

</input-parameter-definition>

对于bounded task flow的使用,可以直接拖放到页面中产生Dynamic Region,也可以用task flow call来调用,但不管如何使用,外部的变量是一定要传递给定义好的parameter。如果是拖放产生Dynamic Region的话,那这个页面的pageDef中一定会有这个task flow的相关定义,那变量的传递就是在这里面配置了。

<taskFlow id="dynamicRegion"

taskFlowId="${viewScope.dynamic_region.taskFlowId}"

activation="deferred"

xmlns="http://xmlns.oracle.com/adf/controller/binding">

<parameters>

<parameter id="test" value="#{viewScope.dynamic_region.testValue}"

xmlns="http://xmlns.oracle.com/adfm/uimodel"/>

</parameters>

</taskFlow>

这样外部只要改变dynamic_region的testValue,那这个value就可以传递给bounded task flow了,当然在bounded task flow中要使用parameter了,可以在页面中可以直接绑定#{pageFlowScope.Test}这个EL表达式,值就能拿到了,如果是在这个bounded task flow的managedBean中的话,需要使用下面的方法来拿到parameter。

AdfFacesContext.getCurrentInstance().getPageFlowScope().get("Test")

注意并不是get("test"),当然如果parameter的name和value都是"test",那用"test"就没问题了,这里取不一样的名字就是为了区分这个。这样往bounded task flow中传值就搞定了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: