【发布时间】:2011-02-25 17:02:21
【问题描述】:
我在处理动态生成的树时遇到了一些麻烦,即从数据库中读取叶子的树。
在我的应用程序中,我显示了问题列表(在丰富的数据表中)。当用户点击一个问题时,会显示一个包含与该问题相关的照片名称的树。即使从数据库中正确读取了与所选问题相关的照片,树的叶子也只包含我在开始时设置的默认测试值。
相关sn-ps:
树包含在一个表单中,它看起来像这样:
<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 组件调用此方法?
【问题讨论】:
-
点击问题时是否有
reRender="treeId"? -
@morja:谢谢,与此同时,我已经通过得出相同的结论解决了这个问题——我重新渲染了树并且它工作了!
-
@morja 再次:我会投票赞成你的答案,但没有足够的代表点 - 抱歉!
-
别担心,反正这不是一个正确的答案……但我可以给你一些分数,下次再来;-)