Jsf 嵌套数据表中的同一事件rowDblselecti
我对嵌套数据表和事件rowDblselect有问题。如果在嵌套表中使用相同类型的事件,然后双击嵌套数据表或父数据表中的行,则会导致异常com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError java.lang.ArrayIndexOutOfBoundsException:0 这段代码演示了问题或bugJsf 嵌套数据表中的同一事件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
<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}">