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

来源:互联网 发布:java并发编程的艺术 编辑:程序博客网 时间:2024/06/08 03:05

(关于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中传值就搞定了。

0 0
原创粉丝点击