2012-12-15 59 views
1

我在jsf應用程序中有一個表,其中包含數據庫中的一些數據。我已經將id值作爲鏈接,我的目標是將數據從選定的行傳遞到另一個facelet。我怎樣才能做到這一點?在href我已經是:將bean數據從一個jsf facelet發送到另一個

<td><a href="editOrDeletePage.xhtml?productid=#{product.id}">#{product.id}</a></td> 

所以我們的目標是,當用戶點擊鏈接時,顯示editOrDeletePage,我想editOrDeletePage爲「攝取」的產品ID,以便它知道什麼數據顯示?我怎樣才能做到這一點?

+0

可能的重複[如何使用Primefaces處理頁面加載URL參數?](http://stackoverflow.com/questions/10724428/how-do-i-process-url-parameters-on-page-load -using-primefaces) – BalusC

回答

2

如果您definetely想使用靜態鏈接,你可以,當然,只是用某種事件偵聽器

<f:event listener="#{bean.preRender}" type="preRenderView" /> 

的讀取目標頁面的請求參數,從請求讀取參數:

FacesContext facesContext = FacesContext.getCurrentInstance(); 
String productId = (String) facesContext.getExternalContext(). 
           getRequestParameterMap().get("productid"); 

但它不是一個真正的JSF方式來處理導航,我相信。您可能想要使用commandLink或其他處理用戶操作的方式。或者,甚至可以更好地考慮使用數據表,用戶可以選擇一行,並且可以處理選擇。

+0

因此,您在第二個塊中發佈的代碼是preRender()方法的主體? – user1154644

+0

是的,這就是我的意思。您可以將productId設置爲變量,並稍後在呈現頁面時使用它。在BalusC答案中鏈接的動作有一個更完整的例子 – skegg99

相關問題