2011-02-25 80 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

通过重新渲染树解决。可能会有更优雅的解决方案,但现在可以使用。