使用动态生成的树,即从数据库中读取树叶的树时,我遇到了一些麻烦。
在我的应用中,我正在显示问题列表(在丰富的数据表中)。当用户点击问题时,会显示包含与该问题相关的照片名称的树。即使从数据库中正确读取了与所选问题相关的照片,树的叶子也只包含我在开头设置的默认测试值。
相关摘要:
树包含在表单中,它看起来像这样:
<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组件调用此方法?
答案 0 :(得分:3)
通过重新渲染树来解决。可能有一个更优雅的解决方案,但现在可以使用。