2013-10-15 34 views
0

我創建了一個bean來搜索sql表。這個bean產生一個顯示在rich:dateTable中的數組列表。有關本表中的每一行,有一列,它是到另一個頁面,指定哪個記錄在表格中要顯示,例如:在jsf bean中使用導航規則

<h:link id="profile_last_name" value="#{record.string}" outcome="#{search.action()}"> 
    <f:param name="user_id" value="#{record.getInteger('user_id')}"/> 
</h:link> 

搜索豆傳遞一個導航結果,例如一個鏈接創建像一個URL「staffEditUser」:

http://localhost:8080/staff/edit/user.xhtml?user_id=98 

我想改變搜索豆,這樣,如果只有一個搜索結果行,它會立即進入編輯頁面。如果我知道目標網頁名稱,我知道如何進行重定向,但我不知道;我在搜索bean中知道的所有內容都是導航結果。有沒有一些方法可以從bean內部訪問導航規則?

或者,這對我來說似乎很笨拙,我可以簡單地將參數添加到將通過jsf導航處理的xhtml文件中的重定向嗎?如果是這樣,怎麼樣?

非常感謝您的幫助。

回答

0

您可以在JSF頁面從您的託管bean方法內的

FacesContext.getCurrentInstance().getExternalContext().redirect("url"); 

據我所知,您重定向。如果返回的結果大小爲無,然後重定向到此記錄的編輯頁面,則應該在ManagedBean數據庫讀取方法內部檢查。

+0

也許我不清楚,但我的問題是,我不知道網址是什麼。我所知道的是導航案例的結果是什麼。我想要做的是找到導航案例映射到的網址。或者,我可以通過渲染來破解xhtml,如果我可以獲取通過導航模型的重定向代碼,則不會渲染面板。從哲學和美學角度來看,這是錯誤的和醜陋的,但如果它有效的話...... – wjr