rich:tree - 无法动态生成叶子?

时间:2011-02-25 17:02:22

标签: java tree richfaces

使用动态生成的树,即从数据库中读取树叶的树时,我遇到了一些麻烦。

在我的应用中,我正在显示问题列表(在丰富的数据表中)。当用户点击问题时,会显示包含与该问题相关的照片名称的树。即使从数据库中正确读取了与所选问题相关的照片,树的叶子也只包含我在开头设置的默认测试值。

相关摘要:

树包含在表单中,它看起来像这样:

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

在bean中我有获取treeNode的方法:public TreeNode getTreeNode()

我调试了这个,我不明白它是如何工作的。在 getTreeNode()的返回和rich:tree中的显示之间, treeNode 的值是否会发生其他问题? 我在返回getTreeNode()之前打印出treeNode的值并且它是正确的,但是显示的值不是打印出来的值。

任何人都可以解释为什么会发生这种情况和/或内部如何运作?谢谢!

编辑:在更详细地调试之后,我认为getTreeNode()方法仅在呈现树的页面呈现期间被调用一次。每次要显示树时,如何强制rich:tree组件调用此方法?

1 个答案:

答案 0 :(得分:3)

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