如何在视图条件之外的 selectManyChoice LOV 中允许选择然后取消选择

How to allow selection then deselection in selectManyChoice LOV outside a view criteria

这是我的问题。

我在表单中得到了 selectManyChoice(这不是查看条件的一部分)。一切正常,除非用户 select 1 个或多个条目,他们不能 deselect 全部,否则我会收到 PPR 异常。

我的设置是一个基于查询的简单 LOV,它在我的 AM 数据模型中可用,我只是将 LOV 从我的数据控件拖到我的表单到 selectManyChoice。 selectManyChoice 在自动提交中,因为我还有一个需要提示的 onValueChangeListener。

没有我的 onValueChangeListener,我仍然以同样的方式得到错误(selecting 一些东西然后 de-selecting 一切)

将 selection 留空不会产生任何错误并让表单正常使用,但是 selecting 一些东西然后 de-selecting 它会导致错误...

出于信息目的,我使用 jDeveloper 版本 11.1.1.9.0

提前致谢!

这是启动的 PPR 错误,以备不时之需

java.lang.NullPointerException
at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.findObjectFromIndex(    FacesCtrlListBinding.java:292)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.getInputValue(    FacesCtrlListBinding.java:215)
at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGet(JUCtrlValueBinding.java:2374)
at oracle.jbo.uicli.binding.JUCtrlListBinding.internalGet(JUCtrlListBinding.java:3807)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.internalGet(    FacesCtrlListBinding.java:524)
at oracle.adf.model.binding.DCControlBinding.get(DCControlBinding.java:768)
at javax.el.MapELResolver.getValue(MapELResolver.java:196)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68)
at org.apache.myfaces.trinidad.component.UIXComponentBase.getProperty(UIXComponentBase.java:1429)
at org.apache.myfaces.trinidad.component.UIXValue.getValue(UIXValue.java:79)
at org.apache.myfaces.trinidad.component.UIXEditableValue.validate(UIXEditableValue.java:187)
at org.apache.myfaces.trinidad.component.UIXEditableValue._executeValidate(UIXEditableValue.java:616)
at org.apache.myfaces.trinidad.component.UIXEditableValue.processValidators(UIXEditableValue.java:304)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ProcessValidationsCallback.invokeContextCallback    (LifecycleImpl.java:1675)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1661)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(    ContextSwitchingComponent.java:223)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:157)

显然有一个补丁,从版本 11.1.1.7.0 到 11.1.1.9.0 出现的错误这里是 link 描述问题的 oracle 票证

support.oracle.com ticket page

修复此问题所需的补丁号是 16224082

此问题已在 12.1.3.0.0 中修复