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

时间:2013-02-10 21:51:04

标签: jsf jsf-2

我有一个简单的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打开一个新页面。但是,如果有可能我想发送隐藏的值,我稍后会将其用作密钥。 有哪些可能的解决方案?

1 个答案:

答案 0 :(得分:3)

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

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

includeViewParams=true位将确保您尝试传递的参数使其跨越请求到达下一页

相关问题