2012-07-02 17 views
0

我有兩個primefaces(p:layoutUnit)小部件:我的頁面左側的layoutUnit中的一棵樹,以及我的頁面中央的layoutUnit中的dataArea(待決定)。我有樹形菜單工作,所以當一個節點被選中時,相應的DAO方法被調用並且對象被返回。我的麻煩是,該對象是否返回到頁面左側的樹形窗體。如何在同一個xhtml頁面上通過兩種形式共享一個變量?

我的問題是:如何獲取返回的對象以填充到我的頁面中心?有沒有一個JSF機制來做到這一點?

回答

2

您可以利用<p:tree>組件的select事件發出Ajax調用,將更新頁面的基於選擇的節點上DATAAREA:

例如:

<p:tree value="#{treeBean.model}" dynamic="true"> 
    <p:ajax event="select" listener="#{treeBean.onNodeSelect}" update="form2:dataArea"/> 
    ... 
</p:tree> 

在onNodeSelect,您將在控制器上使用您想要在dataArea中顯示的值填充一個實例變量。將update屬性設置爲「form2:dataArea」將導致頁面將dataArea更新爲最新狀態(並獲取已放置在實例變量中的數據)。請注意,「form2:dataArea」只是猜測你的第二個表單id和dataArea的id標記爲什麼。

+0

謝謝。你的建議是現貨!有效的代碼是更新=「:form2:dataArea」 – Rick

+0

不客氣。很高興它對你有效。 – BestPractices

相關問題