2011-02-25 53 views
2

我在處理動態生成的樹時遇到了一些麻煩,即樹的葉子從數據庫中讀取。rich:樹 - 無法動態生成葉子?

在我的應用程序,我展示的問題的列表(在一個富裕的數據表)。當用戶點擊一個問題時,會顯示一個包含與該問題相關的照片名稱的樹。即使與選定問題關聯的照片可以正確從數據庫中讀取,樹的葉子只包含我在開始時設置的默認測試值。

相關片段:

樹被包含在一種形式,它看起來像這樣:

<rich:tree style="width:300px" 
    nodeSelectListener="#{treeBean.processSelection}" 
    reRender="selectedNode" 
    ajaxSubmitSelection="true" 
    switchType="server" 
    value="#{treeBean.treeNode}"> 
</rich:tree> 

而且在bean我對獲得treeNode的方法:public TreeNode getTreeNode()

我已經調試過,我不明白它是如何工作的。難道別的事情發生treeNode的getTreeNode()的回報,顯示在富人之間的值:樹? 我在getTreeNode()的返回之前打印出treeNode的值,它是正確的,但顯示的值不是打印出來的值。

誰能解釋爲什麼出現這種情況和/或如何工作的內部?謝謝!

編輯:經過更詳細的調試後,我認爲getTreeNode()方法僅在渲染將顯示樹的頁面期間調用一次。每次顯示樹時,rich:tree組件如何被迫調用此方法?

+1

你甲肝'重新呈現=「treeId」'當一個問題被點擊? – morja 2011-02-28 11:30:34

+0

@morja:謝謝,同時我也通過得出同樣的結論來解決它 - 我重新渲染樹並且它工作正常! – Cristina 2011-02-28 11:33:38

+0

@morja again:我會投你的答案,但沒有足夠的代表點 - 對不起! – Cristina 2011-02-28 11:53:14

回答

3

通過重新渲染樹解決。可能會有更優雅的解決方案,但現在可以使用。