Jsf 嵌套数据表中的同一事件rowDblselecti

Jsf 嵌套数据表中的同一事件rowDblselecti,jsf,events,primefaces,datatable,nested,Jsf,Events,Primefaces,Datatable,Nested,我对嵌套数据表和事件rowDblselect有问题。如果在嵌套表中使用相同类型的事件,然后双击嵌套数据表或父数据表中的行,则会导致异常com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError java.lang.ArrayIndexOutOfBoundsException:0 这段代码演示了问题或bug <p:dataTable id="dataTable1" value="list1"> &l

我对嵌套数据表和事件rowDblselect有问题。如果在嵌套表中使用相同类型的事件,然后双击嵌套数据表或父数据表中的行,则会导致异常com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError java.lang.ArrayIndexOutOfBoundsException:0

这段代码演示了问题或bug

<p:dataTable id="dataTable1" value="list1">
<p:ajax event="rowDblselect"
             listener="listener1"/>

<p:column>
    test1
    <p:rowToggler /> 
</p:column>

<p:rowExpansion>

   <p:dataTable id="dataTable2" value="list2">
       <p:ajax event="rowDblselect"
                    listener="listener2"/>

       <p:column>
           test2
       </p:column>
   </p:dataTable>

</p:rowExpansion> 

堆栈跟踪告诉您需要
中的(有效的)
选择
属性

以下是相关部分:

java.lang.NullPointerException
    at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2458)
    at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2327)
    at com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.put(CompositeComponentAttributesELResolver.java:415)
    at com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.put(CompositeComponentAttributesELResolver.java:331)
    at javax.el.MapELResolver.setValue(MapELResolver.java:94)
    at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255)
    at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281)
    at org.apache.el.parser.AstValue.setValue(AstValue.java:218)
    at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:253)
    at com.sun.faces.facelets.el.ContextualCompositeValueExpression.setValue(ContextualCompositeValueExpression.java:172)
    at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)
    at org.primefaces.component.datatable.DataTable.processUpdates(DataTable.java:561)
UIComponentBase
类的第2458行(显示轨迹的第一行)是:

因此,
ValueExpression
值为
null

数据表类的第561行(显示的跟踪的最后一行)是:

因此,
this.getLocalSelection()
返回了
null

getLocalSelection()
方法依次如下所示:

public Object getLocalSelection() {
    return getStateHelper().get(PropertyKeys.selection);
}
因此,
属性返回了
null
(或未定义)

解决方案应该很简单:确保它不是
null
(或已定义)


堆栈跟踪告诉您需要在
中选择一个(有效的)
属性

以下是相关部分:

java.lang.NullPointerException
    at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2458)
    at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2327)
    at com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.put(CompositeComponentAttributesELResolver.java:415)
    at com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.put(CompositeComponentAttributesELResolver.java:331)
    at javax.el.MapELResolver.setValue(MapELResolver.java:94)
    at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255)
    at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281)
    at org.apache.el.parser.AstValue.setValue(AstValue.java:218)
    at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:253)
    at com.sun.faces.facelets.el.ContextualCompositeValueExpression.setValue(ContextualCompositeValueExpression.java:172)
    at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)
    at org.primefaces.component.datatable.DataTable.processUpdates(DataTable.java:561)
UIComponentBase
类的第2458行(显示轨迹的第一行)是:

因此,
ValueExpression
值为
null

数据表类的第561行(显示的跟踪的最后一行)是:

因此,
this.getLocalSelection()
返回了
null

getLocalSelection()
方法依次如下所示:

public Object getLocalSelection() {
    return getStateHelper().get(PropertyKeys.selection);
}
因此,
属性返回了
null
(或未定义)

解决方案应该很简单:确保它不是
null
(或已定义)



堆栈跟踪始终包含答案。请发布整个堆栈跟踪。谢谢你的回答,我添加了堆栈跟踪。堆栈跟踪始终包含答案。请发布整个堆栈跟踪。谢谢你的回答,我添加了堆栈跟踪。
public Object getLocalSelection() {
    return getStateHelper().get(PropertyKeys.selection);
}
<p:dataTable ... selection="#{bean.selection}">