我有一个很大的树结构(将近6000个节点和不断增长),我在我的webapp中显示为一个Richfaces rich:tree。JSF2 Richfaces 4.1.0树的Ajax部分渲染
当选择一个节点时,后台bean中的处理函数运行一些逻辑并发挥一定的魔力。
发生的一件事情是树在树中的每个选择上都通过Ajax调用重新呈现。这意味着每次选择更改时都会将超过2MB的数据发送到服务器。
正如你可能猜测我的问题在于,这是非常缓慢的。我想要做的只是选择了重新渲染的树节点,而不是整个树,因为这只希望向服务器发布几个KB。
这是我在JSF2.0中使用RichFaces 4.1.0开发的第一个真正的项目,因此我疯狂地搜索了一个解决方案,并通过RichFaces站点上的文档搜索,但尚未找到解决方案。
我的代码如下所示:
<h:form id="main">
<a4j:outputPanel ajaxRendered="true">
<rich:panel id="treePanel" header="Tree">
<rich:tree id="theTree" var="tree" value="#{treeBean.rootNodes}" selectionType="ajax" toggleType="client" selectionChangeListener="#{treeBean.selectionChanged}">
<rich:treeNode>
<h:outputText styleClass="#{tree.selected?'selectedNode':''}" value="#{tree.title}" />
</rich:treeNode>
</rich:tree>
</rich:panel>
</a4j:outputPanel>
</h:form>
你是否找出了树节点部分渲染的解决方案。 – 2014-07-08 15:15:15