2

我正在使用 <p:tree>. 并尝试使用<p:ajax>来检测所选节点并执行操作。这是我实际的 JSF 代码:

<p:tree id="treeDot" value="#{beanRequest.rootDot}" var="node"  selectionMode="single"
    nodeSelectListener="#{beanRequest.clt}" >
    <p:ajax event="select" listener="#{beanRequest.clientSelected}" />
        <p:treeNode>
            <h:outputText value="#{node}" />
        </p:treeNode>
</p:tree>

服务器端方法:

//...
private Client clt;
public void clientSelected(NodeSelectEvent event) {
    //...
}
//...

我得到以下异常:

8 oct. 2012 17:30:01 com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.NullPointerException
java.lang.NullPointerException
    at org.primefaces.component.api.UITree.findTreeNode(UITree.java:111)
    at org.primefaces.component.api.UITree.setRowKey(UITree.java:78)
    at org.primefaces.component.tree.TreeRenderer.decodeSelection(TreeRenderer.java:62)
    at org.primefaces.component.tree.TreeRenderer.decode(TreeRenderer.java:38)
    at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787)
    at org.primefaces.component.api.UITree.processDecodes(UITree.java:170)
    at org.primefaces.component.tree.Tree.processDecodes(Tree.java:366)
    at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506
)
    at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
    at org.primefaces.component.api.UITree.visitTree(UITree.java:392)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at org.primefaces.component.tabview.TabView.visitTree(TabView.java:400)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIForm.visitTree(UIForm.java:371)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
4

1 回答 1

0

我发现了错误。只需像这样 替换nodeSelectListener="#{beanRequest.clt}"selection="#{beanRequest.selectedNode}" 创建selecttedNode变量beanRequestprivate TreeNode selectedNode;

于 2012-10-10T12:23:30.250 回答