jsf-2 - 你如何使用 DefaultTreeNode(nodeType, data, parentNode)?

标签 jsf-2 primefaces

如何使用 DefaultTreeNode(nodeType, data, parentNode)?

基本上如果我这样做:

treeChild = new DefaultTreeNode("action", data, treeParent);

我的 TreeView 是空白的。

如果我改用它:

treeChild = new DefaultTreeNode(data, treeParent);

然后显示我的 TreeView 。

DefaultTreeNode(nodeType, data, parentNode) 坏了吗?

最佳答案

我相信我找到了解决方案。在这里:

1 - 在 tree.xhtml 中,我必须为每个节点类型包含一个 tree 元素和一个 treeNode 元素。

<p:tree id="treeSingle" 
    value="#{treeBean.root}" 
    var="node"
    selectionMode="single"
    selection="#{treeBean.selectedNode}"
    dynamic="true"
    style="width:98%;height:100%;">
    <p:treeNode type="#{treeBean.LEAF_TYPE}">
       <h:outputText value="#{node}" />
    </p:treeNode>
    <p:treeNode type="#{treeBean.ACTION_TYPE}">
       <h:outputText value="#{node}" />
    </p:treeNode>
    <p:treeNode type="#{treeBean.VALUE_TYPE}">
       <h:outputText value="#{node}" />
    </p:treeNode>
</p:tree>

2 - 然后在 tree.xhtml 中,我还必须像这样为每个节点类型定义菜单:

<p:contextMenu for="treeSingle" nodeType="#{treeBean.LEAF_TYPE}">
    <p:menuitem value="View" actionListener="#{treeBean.displaySelectedSingle}" icon="ui-icon-search" update=":infoMessages"/>
    <p:menuitem value="Delete" update="treeSingle" actionListener="#{treeBean.deleteNode}" icon="ui-icon-close"/>
</p:contextMenu>
<p:contextMenu for="treeSingle" nodeType="#{treeBean.ACTION_TYPE}">
    <p:menuitem value="Execute" actionListener="#{treeBean.execute}" update=":infoMessages"/>
</p:contextMenu>
<p:contextMenu for="treeSingle" nodeType="#{treeBean.VALUE_TYPE}">
    <p:menuitem value="Edit" actionListener="#{treeBean.edit}" icon="ui-icon-edit" update=":infoMessages"/>
    <p:menuitem value="Delete" update="treeSingle" actionListener="#{treeBean.deleteNode}" icon="ui-icon-close"/>
</p:contextMenu>

3 - 然后在我的 TreeBean 中,我公开了如下属性:

private static final String LEAF_TYPE  = "leaf";
private static final String ACTION_TYPE = "action";
private static final String VALUE_TYPE = "value";

public String getLEAF_TYPE(){
    return LEAF_TYPE;
}
public String getACTION_TYPE(){
    return ACTION_TYPE;
}
public String getVALUE_TYPE(){
    return VALUE_TYPE;
}

4 - 最后在 TreeBean 中,我创建了这样的节点:

TreeNode node = new DefaultTreeNode(ACTION_TYPE, data, parentNode); 
TreeNode node = new DefaultTreeNode(LEAF_TYPE, data, parentNode); 
TreeNode node = new DefaultTreeNode(VALUE_TYPE, data, parentNode);

关于jsf-2 - 你如何使用 DefaultTreeNode(nodeType, data, parentNode)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993898/

相关文章:

java - Primefaces JSF 多次打开对话框会缓慢增加浏览器内存

jsf - 使用 JSF/Java EE 从数据库实时更新

validation - 将默认消息 "Validation Error: Value is required"更改为 "Value is required"

css - JSF <f :facet> contents not rendered

jsf-2 - 设置ui :param conditionally

jsf - 同时调用多个支持 bean 方法

java - 无法通过 EL 将参数传递给方法 - javax.el.MethodNotFoundException

java - 外部 f :ajax for composite component

jsf-2 - 仅为一个 JSF 页面应用 PrimeFaces 主题

css - PrimeFaces 对话框标题大小不正确