以编程方式获取LOV的所有返回值

时间:2015-10-09 00:27:03

标签: java oracle oracle-adf managed-bean lov

我正在研究一个CRUD应用程序,我已经定义了一个这样的LOV:

enter image description here

我的问题是如何获取所有这些返回值,例如像这样定义的ValueChangeListener:

public void onValueChanged(ValueChangeEvent ev){
    BindingContext bctx = BindingContext.getCurrent();
    oracle.binding.BindingContainer bindings = bctx.getCurrentBindingsEntry();
    DCIteratorBinding iterBind = (DCIteratorBinding)bindings.get("MpStavkeulazaView5Iterator");
    System.out.println("Vrijednost je" + ev.getNewValue());
}

此代码仅提供list属性的值,但我也想要其他值。

请告诉我任何其他信息。

2 个答案:

答案 0 :(得分:1)

首先 - 使用支持bean的值更改侦听器对于此类用例并不理想: 尝试使用Row Impl上的setter来达到同样的目的。

请记住:如果您无法使用BC测试仪测试您的用例,则您的ADF设计存在缺陷。

其次:你的LOV可以返回多个值: http://adfbugs.blogspot.co.uk/2009/11/returning-multiple-values-from-lov-in.html

答案 1 :(得分:1)

您可以绑定行属性,然后获取此绑定的值,或者只从迭代器获取此属性。如果您要在Filename1 Filename2 Filename3 中处理它,则必须先处理更新,然后才能获取此值:

valueChangeListener

然而,在ViewObject中使用Transient属性并在那里进行计算可能会更好吗?