关于Oracle ADF 11g的传值给bounded task flow(二)
(2010-10-29 17:16:54)
前面写了一篇介绍bounded task flow做为Region使用的时候如何给其传值。bounded task flow还有另一种使用的方法,就是用Task Flow Call。Task Flow Call有静态调用和动态调用俩种方式,静态调用就是输入具体的task flow ID来调用对应的bounded task flow;动态调用就是根据一个变化的task flow ID来调用不同的bounded task flow,这与动态Region要达到的目的是一样的,这里就拿Task Flow Call的静态调用来做例子了。这种用法有个要求就是被call的bouned task flow中是view而不是fragement,做了个例子看看这种方式调用bounded task flow时该如何传值的。
对于bounded task flow,其Parameter有两种:Input Parameter和Return Value。为了测试这两种parameter,在unbouned task flow中拖入一个view和一个Task Flow Call,并做双向的negative(返回view的导航只要是*)。然后实现一个bounded task flow,随便实现几个页面间的negative并做好taskFlowReturn之后,开始设置这个bouned task flow的Input Parameter和Return Value。
<input-parameter-definition id="__7">
<name id="__8">test</name>
<value>#{pageFlowScope.test}</value>
<class>java.lang.String</class>
</input-parameter-definition>
<return-value-definition id="__22">
<name id="__21">returnValue</name>
<value>TestValueReturn</value>
<class>java.lang.String</class>
</return-value-definition>
因为Input Parameter是要从外部拿到传进来的值(在前面一篇有过介绍),而Return Value是要返回一个值给外部,为了测试方便,这里定义的Retrun Value给其固定值"TestValueReturn"(当然用这个bounded task flow中的控件值的绑定也是没有问题的),定义好之后,可以在unbounde task flow中选中Task Flow Call这个Active看其属性,会发现刚刚在被这个Active Call的task flow中定义的Input和Return参数在这个Task Flow Call的Parameters属性中都显示出来了,这就是bouned task flow与外部的接口了,接下来只要给这个Task Flow Call的Input Parmeter设置想要传进bounded task flow中的值,给Return Value设置想要返回出来的value名(为了外部能使用这个这个返回参数名所对应的值)就可以了。
<task-flow-call id="taskFlowCall1">
<task-flow-reference>
<document>/WEB-INF/task-flow-definition.xml</document>
<id>task-flow-definition</id>
</task-flow-reference>
<input-parameter id="__62">
<name>test</name>
<value>CallTest</value>
<pass-by-value/>
</input-parameter>
<return-value id="__68">
<name>returnValue</name>
<value>#{pageFlowScope.return}</value>
</return-value>
</task-flow-call>
在这里给bouned task flow的input参数test赋值为"CallTest",在bounded task flow中使用
#{pageFlowScope.test}就可以获得传进来的Input Parameter的值了;return的值赋值给变量
#{pageFlowScope.return},这样在unbounded task flow的view中使用#{pageFlowScope.return}就能获得bounded task flow返回的值了,整个过程应该就是这样了。
因为Input Parameter是要从外部拿到传进来的值(在前面一篇有过介绍),而Return Value是要返回一个值给外部,为了测试方便,这里定义的Retrun Value给其固定值"TestValueReturn"(当然用这个bounded task flow中的控件值的绑定也是没有问题的),定义好之后,可以在unbounde task flow中选中Task Flow Call这个Active看其属性,会发现刚刚在被这个Active Call的task flow中定义的Input和Return参数在这个Task Flow Call的Parameters属性中都显示出来了,这就是bouned task flow与外部的接口了,接下来只要给这个Task Flow Call的Input Parmeter设置想要传进bounded task flow中的值,给Return Value设置想要返回出来的value名(为了外部能使用这个这个返回参数名所对应的值)就可以了。
在这里给bouned task flow的input参数test赋值为"CallTest",在bounded task flow中使用
#{pageFlowScope.test}就可以获得传进来的Input Parameter的值了;return的值赋值给变量
#{pageFlowScope.return},这样在unbounded task flow的view中使用#{pageFlowScope.return}就能获得bounded task flow返回的值了,整个过程应该就是这样了。