How to open new page on node click

霸气de小男生 提交于 2019-12-25 04:46:12

问题


I have a simple example of 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>

I'm interested is it possible somehow when I click on a node to open a new page. I found that using onNodeClick I can open a new page using JavaScript. But if it's possible I want to send hidden value which I will use as a key later. What are the possible solutions?


回答1:


You could try embedding an <h:link/> in the <p:treeNode/>. Use the following construct

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

The includeViewParams=true bit is going to ensure the parameter you're trying to pass makes it across the request to the next page



来源:https://stackoverflow.com/questions/14802979/how-to-open-new-page-on-node-click

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!