我有一个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
位将确保您试图传递的参数能够通过请求传递到下一页