別のxhtmlのタブビューに動的に含まれるxhtml内で p:tree を使用しています。タブを交互に変更すると、ツリー展開が機能しません。ノードの横にあるアイコンをクリックしてもツリーを展開できません。
注:または、動作しません。この問題は、index.xhtml のタブビューで dynamic="true" および cache="false" の場合にのみ発生します。シナリオを簡単に再現できる完全なコードを以下に示します。
私はプロジェクトの多くの場所で p:tree を使用しているため、これがバグである場合は、少なくとも一時的な回避策を提供するようにお願いします。私はすでにこれをprimefacesフォーラムに投稿しました。Tomcat 7.0のJSFでPrimefaces 3.5を使用しています
index.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<p:tabView dynamic="true" cache="false">
<p:tab title="One">
<ui:include src="/one.xhtml" />
</p:tab>
<p:tab title="two" />
</p:tabView>
</h:body>
</html>
one.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<p:tree widgetVar="treeStructure" value="#{treeBean.root}" var="node" selectionMode="single" id="tree">
<p:treeNode>
<h:outputText value="#{node}" />
</p:treeNode>
</p:tree>
</h:body>
</html>
TreeBean.java
@ManagedBean
@SessionScoped
public class TreeBean {
private TreeNode root;
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
public TreeBean() {
root = new DefaultTreeNode("Root", null);
TreeNode node0 = new DefaultTreeNode("Node 0", root);
TreeNode node00 = new DefaultTreeNode("Node 0.0", node0);
}
}