2017-09-29 72 views
0

我有一個tabMenu使用菜單項每個菜單項都有一個參數「i」,它鏈接到activeIndex以指示點擊該選項卡時加載哪個頁面。將primefaces tabview activeIndex的值傳遞給一個窗口小部件託管bean

我面臨的問題是我需要獲取此參數值來調用另一個正在執行操作/處理的小部件。有什麼辦法可以得到我的這個參數值,並將它傳遞給我的小部件管理bean(小部件包含一個命令按鈕,應該調用小部件管理bean中的方法,並根據所選菜單進行一些處理)。

小部件從tabMenu運行,但仍然與選項卡菜單位於同一頁面上。有沒有辦法做到這一點?

TabMenu是這樣的:

<p:tabMenu activeIndex="#{param.i}"> 
     <p:menuitem value="AAA" outcome="/ABC/DEF/123.xhtml"> 
      <f:param name="i" value="0" /> 
     </p:menuitem>... continued similar menuitem for 3 times with values for i 0-3 
</p:tabMenu> 

我的小部件包含一個命令按鈕,如下所示:

<h:commandButton outcome="widget" action="#{mbean.callWidgetMethod}" > 
</h:commandButton> 

任何人都可以請指導我?提前致謝。

回答

0

OK,我找到了答案

在XHTML:

<h:commandButton outcome="widget" action="#{bean.callWidgetMethod}" > 
     <f:param name="i" value="#{param['i']}" /> 
</h:commandButton> 

在Managed Bean:

Map<String,String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); 

String param = params.get("i"); 

System.out.println("i = "+param); 
相關問題