2011-02-03 58 views
1

之間我有叫Foo的一個類別。還有一個名爲FooBean的ManagedBean。在一個頁面(Facelet)中,我從用戶那裏獲得一個新的Foo信息並將其插入到數據庫中。首次提交數據後,將啓用打印按鈕。現在我需要用戶單擊打印按鈕並使用PrintFooBean查看打印頁面的另一個頁面(Facelet)。我如何將最近插入的Foo的ID傳遞給PrintFooBean並加載並在打印頁面上顯示它的項目?傳遞數據ManagedBeans

什麼是最好的方法是什麼? 而且我更喜歡用戶在新的瀏覽器窗口/選項卡中查看打印頁面。

+0

http://balusc.blogspot.com/2006/06/communication-in-jsf.html – 2011-02-03 16:00:18

+1

@org:這篇文章是有針對性的還是對JSF 1.2。在JSF 2.0中有許多更好/更好的方法。 – BalusC 2011-02-03 17:21:28

回答

1

將它作爲請求參數。

<a href="print.jsf?id=#{foo.id}" target="_blank">print</a> 

或不明顯地通過JS window.open

逐步增強
<a href="print.jsf?id=#{foo.id}" target="_blank" 
    onclick="window.open('print.jsf?id=#{foo.id}'); return false;">print</a> 

填充與id打印豆。

@ManagedProperty(value="#{param.id}") 
private Long id; 

預緊在同一個bean的Foo數據基於id

@PostConstruct 
public void init() { 
    this.foo = fooDAO.find(id); 
}