在我的 jsf 页面中,我有一个<p:treeTable>
结构。单击放置在其中一列上的小图标时,我试图删除一个节点:
<p:column rendered="#{node.isLeaf}" style="width:70px">
<p:commandLink styleClass="entity-icon" update=":clipboard-tree" ajax="true"
action="#{clipboardManager.removeClipboard(node)}" >
<p:graphicImage value="/resources/images/delete.png" styleClass="entity-icon-tree"/>
</p:commandLink>
</p:column>
我的 removeClipboard 函数看起来像这样:
public void removeClipboard(FindResult result){
TreeNode node = result.getNode();
node.getChildren().clear();
node.getParent().getChildren().remove(node);
node.setParent(null);
node = null;
}
这类似于 primefaces 提供的展示。然而,树只在第二次点击时更新,我得到以下异常:
[Index: 0, Size: 0] with root cause java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
仅当我尝试删除节点的最后一个子节点时才会发生这种情况。有人知道为什么会这样吗?或者我该如何解决?先感谢您。