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}" を作成するだけですselecttedNodebeanRequestprivate TreeNode selectedNode;

于 2012-10-10T12:23:30.250 に答える