私はWebappでRichfaces rich:ツリーとして表示される大きなツリー構造(ほぼ6000個のノードと成長)を持っています。JSF2 Richfaces 4.1.0ツリーのAjax部分レンダリング
ノードが選択されると、バッキングBeanのハンドラ関数がロジックを実行し、いくつかの魔法を働きます。
ツリー内のすべての選択に対してツリーがAjaxコールで再レンダリングされることがあります。これは、選択が変更されるたびに、2MBを超えるファイルがサーバーにPOSTされることを意味します。
ここで私の問題を推測するかもしれませんが、これは非常に遅いです。私がしたいのは、選択されたツリーノードがツリー全体ではなく再レンダリングされるようにすることだけです。これは、サーバーに数KBをPOSTするだけでよいからです。
これは、RichFaces 4.1.0を使用しているJSF2.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>
ツリーノードの部分レンダリングの解決策を見つけましたか? –