将所选行ID从一个页面传输到另一个页面

时间:2015-07-08 17:30:27

标签: jsf jsf-2 primefaces

第一页:

上下文菜单和传递参数:

<p:contextMenu for="tbl">

                        <p:menuitem value="History Alarm"  icon="ui-icon-search"  outcome="alarmMap">
                            <f:param name="siteId" value="#{dwnSite.test.id}" />
                        </p:menuitem>

 </p:contextMenu>

数据表:

<p:dataTable  id="tbl" value="#{bean.sites}" selection="#{bean.test}" selectionMode="single"  rowKey="#{dwn.id}" >  

  <p:column >                                   
   <h:outputText value="#{dwn.id}"/>
  </p:column>

第二页:

 <f:metadata>
         <f:viewParam name="id" value="#{bean.searchFeatureVal}" />
 </f:metadata>

如何将数据表的行ID从一个页面传输到另一个页面?当我尝试在同一页面的对话框中显示它时,它可以工作。

1 个答案:

答案 0 :(得分:1)

执行 POST 并处理bean中的url,保留您的选择。应该像这样工作:

<p:menuitem value="History Alarm" icon="ui-icon-search" action="#{bean.performRedirect}" />

要在bean中调用的方法:

public void performRedirect(){
    //Go to the detail view with the selected id as url parameter
    FacesContext.getCurrentInstance().getExternalContext()
        .redirect("detail.xhtml?id=" + test.getId());
}