Task Flow使用指南之四:获取Task Flow返回值(3)

187 篇文章 2 订阅
和TaskFlow传入参数一样,TaskFlow的传出参数也是定义在TaskFlow定义中的。

1. 打开TaskFlow定义,定义Return Value Definitions。


说明:这里定义了一个返回参数LocationId,其值来自于pageFlowScope.locationId。
那么,谁给pageFlowScope.locationId赋值呢?

重要说明:在TaskFlow中定义的返回参数LocationId,会自动放到pageFlowScope中!
相关的文档说明我没有找到,是我自己试验发现的:增加新的变量后,所有的EL编辑框下拉列表pageFlowScope节点下都会出现这个变量。



2. 打开TaskFlow,在某个页面中,在command component上设置setActionListener或setPropertyListener把当前页面的某个组件的值传入到pageFlowScope中

<af:commandButton text="OK" id="cb1" action="goReturn">
<af:setPropertyListener type="action" from="#{bindings.LocationId.inputValue}" to="#{pageFlowScope.locationId}"/>
</af:commandButton>

说明:原来pageFlowScope.locationId是在这里赋值的。 
3. 拖放TaskFlow到父一级TaskFlow中,定义Task Flow Call Activity上的Return Values

说明:可以把TaskFlow以popup dialog的形式展现,并且设置Dialog Return Value。
注意:这里返回参数LocationId并没有定义Value,因为它通过Dialog Return Value来获取该值了。
如果不通过Dialog Return Value,则必须要设置该值。(有待验证)
我建议为了一致性,还是设置为每个返回参数设置对应的返回值,与步骤1保持一致。(有待验证)

思考:如果在第1步定义多个返回参数,在这里Dialog Return Value只能返回一个参数,那该怎么办?
我的回答:如果有多个返回参数,就不能在Dialog Return Value中全部返回了。此时,可以考虑
(1)使用一个大对象包含所有的对象。
(2)分别使用每个返回参数,因为它们都是在pageFlowScope中的。(有待验证)
4. 在父一级的页面中,在command component上设置returnListener,获取返回值。
<af:commandButton ...... useWindow="true" " action="goPopup" returnListener="#{backingBeanScope.backing_Departments.confirmChoice}" partialSubmit="true"/>
对应的MBean中的方法参数为ReturnEvent,使用returnEvent.getReturnValue(); 可以获取popup dialog的返回值,也即TaskFlow的返回值。

参考文献:

1.http://oracleseeker.com/2009/12/30/adf_dialog_inlinepopup_11g/

http://maping930883.blogspot.com/2010/04/adf087task-flowtask-flow3.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值