Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Primefaces p:树在v4中工作成功,在v5、v5.1、5.2、5.3和6中工作失败_Primefaces - Fatal编程技术网

Primefaces p:树在v4中工作成功,在v5、v5.1、5.2、5.3和6中工作失败

Primefaces p:树在v4中工作成功,在v5、v5.1、5.2、5.3和6中工作失败,primefaces,Primefaces,我使用MojaraJSF2.2和PrimeFaces4、Wildfly作为web服务器和EclipseNeon作为IDE开发了一个web应用程序。而且效果很好。当我尝试迁移到Primefaces 5时,一切正常,除了p:tree未能触发任何选择事件。v5.1、5.2、5.3和6也出现了同样的情况。 因此,如果您有任何帮助,我们将不胜感激 下面是p:树代码片段: <h:form id="barForm"> <p:tree id="treeS

我使用MojaraJSF2.2和PrimeFaces4、Wildfly作为web服务器和EclipseNeon作为IDE开发了一个web应用程序。而且效果很好。当我尝试迁移到Primefaces 5时,一切正常,除了p:tree未能触发任何选择事件。v5.1、5.2、5.3和6也出现了同样的情况。 因此,如果您有任何帮助,我们将不胜感激

下面是p:树代码片段:

<h:form id="barForm">
                    <p:tree id="treeSingle" value="#{treeBackBean.root}" var="node"
                        selectionMode="single" selection="#{treeBackBean.selectedNode}"
                        dir="rtl" style="height: 100%; width: 200px;">
                        <p:ajax event="select" listener="#{treeBackBean.onNodeSelect}" />
                        <p:treeNode>
                            <h:outputLabel value="#{node}" />
                        </p:treeNode>
                    </p:tree>
                </h:form>
}

我还使用AppUtil从属性文件中获取属性值

import services.AppUtil;
import java.io.IOException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.event.NodeSelectEvent;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;

@ManagedBean
@SessionScoped
public class TreeBackBean implements Serializable {

private static final long serialVersionUID = 1L;

private TreeNode root;
private TreeNode selectedNode;

@SuppressWarnings("unused")
@PostConstruct
public void builtTree() {
    TreeNodeData nodeData = new TreeNodeData("Root", "", TreeNodeData.NODE_TYPE_ROOT);
    root = new DefaultTreeNode(nodeData, null);

    nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels", "menuControlPanel"), "",
            TreeNodeData.NODE_TYPE_BRANCH);
    TreeNode settingsMenu = new DefaultTreeNode(nodeData, root);

 try{nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels",          "applicationAdministartionSubMenu"), "",
                    TreeNodeData.NODE_TYPE_BRANCH);
            TreeNode applicationAdministartionSubMenu = new                 DefaultTreeNode(nodeData, settingsMenu);

 nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels", "usersRoles"),
                                        "userRole.xhtml",                 TreeNodeData.NODE_TYPE_LEAF);
            TreeNode node1 = new DefaultTreeNode(nodeData,   applicationAdministartionSubMenu);
            //
            nodeData = new   TreeNodeData(AppUtil.getPropertyValue("labels", "Catogeries"),
                    "Catogery.xhtml", TreeNodeData.NODE_TYPE_LEAF);
            TreeNode node2 = new DefaultTreeNode(nodeData, applicationAdministartionSubMenu);
            //
            nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels", "Units"),
                    "Unit.xhtml", TreeNodeData.NODE_TYPE_LEAF);
            TreeNode node3 = new DefaultTreeNode(nodeData, applicationAdministartionSubMenu);
            //
applicationAdministartionSubMenu.setExpanded(true);
 ///...........etc
   } catch (NullPointerException ex) {
        // ex.printStackTrace();
    }

public TreeNode getRoot() {
    return root;
}

public TreeNode getSelectedNode() {
    return selectedNode;
}

public void setSelectedNode(TreeNode selectedNode) {
    this.selectedNode = selectedNode;
}

public void onNodeSelect(NodeSelectEvent event) {
TreeNodeData treeNodeData = (TreeNodeData) event.getTreeNode().getData();
//remaining selection code goes here
//it just redirecting to selected page.
}

public void expand(TreeNode treeNode) {
    if (treeNode != null)
        if (treeNode.getParent() != null) {
            treeNode.getParent().setExpanded(true);
            expand(treeNode.getParent());
        }
}

}//class end

请改进你的标题。PrimeFaces展示区也很有效。找到differences@Kukeltje我从PrimeFaces showcase学习,我知道在那里工作很好。但我不工作,至少在v4之后的任何最新版本,我不知道为什么。无论如何,谢谢,我很感激。我在xhtml正文中使用了ajaxStatus,当我将p:tree的ajax选择事件全局属性设置为false时,它似乎以某种方式阻止了p:tree的ajax选择事件。它适用于所有版本。但这种方式会产生很多其他问题,因为它会禁用触发其他操作……例如:commondButton和commondLink停止工作。您可以编辑您的问题。使代码更具可读性
import services.AppUtil;
import java.io.IOException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.event.NodeSelectEvent;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;

@ManagedBean
@SessionScoped
public class TreeBackBean implements Serializable {

private static final long serialVersionUID = 1L;

private TreeNode root;
private TreeNode selectedNode;

@SuppressWarnings("unused")
@PostConstruct
public void builtTree() {
    TreeNodeData nodeData = new TreeNodeData("Root", "", TreeNodeData.NODE_TYPE_ROOT);
    root = new DefaultTreeNode(nodeData, null);

    nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels", "menuControlPanel"), "",
            TreeNodeData.NODE_TYPE_BRANCH);
    TreeNode settingsMenu = new DefaultTreeNode(nodeData, root);

 try{nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels",          "applicationAdministartionSubMenu"), "",
                    TreeNodeData.NODE_TYPE_BRANCH);
            TreeNode applicationAdministartionSubMenu = new                 DefaultTreeNode(nodeData, settingsMenu);

 nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels", "usersRoles"),
                                        "userRole.xhtml",                 TreeNodeData.NODE_TYPE_LEAF);
            TreeNode node1 = new DefaultTreeNode(nodeData,   applicationAdministartionSubMenu);
            //
            nodeData = new   TreeNodeData(AppUtil.getPropertyValue("labels", "Catogeries"),
                    "Catogery.xhtml", TreeNodeData.NODE_TYPE_LEAF);
            TreeNode node2 = new DefaultTreeNode(nodeData, applicationAdministartionSubMenu);
            //
            nodeData = new TreeNodeData(AppUtil.getPropertyValue("labels", "Units"),
                    "Unit.xhtml", TreeNodeData.NODE_TYPE_LEAF);
            TreeNode node3 = new DefaultTreeNode(nodeData, applicationAdministartionSubMenu);
            //
applicationAdministartionSubMenu.setExpanded(true);
 ///...........etc
   } catch (NullPointerException ex) {
        // ex.printStackTrace();
    }

public TreeNode getRoot() {
    return root;
}

public TreeNode getSelectedNode() {
    return selectedNode;
}

public void setSelectedNode(TreeNode selectedNode) {
    this.selectedNode = selectedNode;
}

public void onNodeSelect(NodeSelectEvent event) {
TreeNodeData treeNodeData = (TreeNodeData) event.getTreeNode().getData();
//remaining selection code goes here
//it just redirecting to selected page.
}

public void expand(TreeNode treeNode) {
    if (treeNode != null)
        if (treeNode.getParent() != null) {
            treeNode.getParent().setExpanded(true);
            expand(treeNode.getParent());
        }
}

}//class end