Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式获取LOV的所有返回值_Java_Oracle_Oracle Adf_Managed Bean_Lov - Fatal编程技术网

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

Java 以编程方式获取LOV的所有返回值,java,oracle,oracle-adf,managed-bean,lov,Java,Oracle,Oracle Adf,Managed Bean,Lov,我目前正在开发CRUD应用程序,我定义了如下LOV: public void onValueChanged(ValueChangeEvent ev){ BindingContext bctx = BindingContext.getCurrent(); oracle.binding.BindingContainer bindings = bctx.getCurrentBindingsEntry(); DCIteratorBinding iterBind = (DCIter

我目前正在开发CRUD应用程序,我定义了如下LOV:

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());
}

我的问题是如何在定义如下的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属性的值,但我也需要其他值


任何其他信息请告诉我。

首先-使用backing bean的值更改侦听器并不适合此类用例: 为了同样的目的,请尝试使用行Impl上的setter

记住:如果您不能从BC tester测试您的用例,那么您的ADF设计是有缺陷的

其次:您的LOV可以返回多个值:

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

public void onValueChanged(ValueChangeEvent ev){
  BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
  DCIteratorBinding iterBind = (DCIteratorBinding)bindings.get("MpStavkeulazaView5Iterator");
  System.out.println("Vrijednost je" + ev.getNewValue());
  ev.processUpdates(FacesContext.getCurrentInstance());
  Row row = iterBind.getCurrentRow();
  System.out.println("Proizvod: " + row.getAttribute("Proizvod"));
  System.out.println("Jmjere: " + row.getAttribute("Jmjere"));
}

但是,在ViewObject中使用Transient属性并在其中进行计算可能更好?

我需要以编程方式访问这些值以计算表中的一个字段。你发布的链接显示它可以返回多个值,但不能从bean中获取它们。关于我的评论有什么想法吗?