Java 以编程方式获取LOV的所有返回值
我目前正在开发CRUD应用程序,我定义了如下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
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中获取它们。关于我的评论有什么想法吗?