如何在节点单击打开新页面



我有一个p:tree的简单例子。

<p:tree id="tree" styleClass="treeskin" value="#{TreeViewController.root}" var="node" dynamic="true" animate="true"
        selectionMode="single" selection="#{TreeViewController.selectedNode}" highlight="true">
    <p:ajax event="select" listener="#{TreeViewController.onNodeSelect}" update=":treeform:outputComponent"/>
    <p:ajax event="expand" listener="#{TreeViewController.onNodeExpand}" />
    <p:ajax event="collapse" listener="#{TreeViewController.onNodeCollapse}" />
    <p:treeNode styleClass="treeskin">
        <h:outputText value="#{node}"/>
    </p:treeNode>
</p:tree>

我感兴趣的是,当我点击一个节点打开一个新页面时,它是否可能以某种方式出现。我发现使用onNodeClick我可以使用JavaScript打开一个新页面。但如果可能的话,我想发送隐藏值,稍后我会将其用作密钥。可能的解决方案是什么?

您可以尝试在<p:treeNode/>中嵌入<h:link/>。使用以下构造

<h:link value="#{node}" outcome="destination?includeViewParams=true">
   <f:param name="theParam" value="#{node.property}"/>
</h:link> 

includeViewParams=true位将确保您试图传递的参数能够通过请求传递到下一页

相关内容

  • 没有找到相关文章

最新更新