我不能在liferay中使用primefaces树组件,我不明白为什么。 我尝试了很多hack(范围,UiTreeNode / TreeNode,没有节点,......)但是当我提交/刷新我的页面(ajax或非ajax)时,我总是有一个重复的Id。
我没有其他想法所以我来找你......
xhtml:
<p:tree value="#{treeBasicView.root}" var="node">
<p:treeNode>
<h:outputText value="#{node}" />
</p:treeNode>
</p:tree>
java:
@ManagedBean(name = "treeBasicView")
@ViewScoped
public class BasicView implements Serializable
{
private TreeNode root;
@PostConstruct
public void init()
{
root = new DefaultTreeNode("Root", null);
TreeNode node0 = new DefaultTreeNode("Node 0", root);
TreeNode node1 = new DefaultTreeNode("Node 1", root);
TreeNode node00 = new DefaultTreeNode("Node 0.0", node0);
TreeNode node01 = new DefaultTreeNode("Node 0.1", node0);
TreeNode node10 = new DefaultTreeNode("Node 1.0", node1);
node1.getChildren().add(new DefaultTreeNode("Node 1.1"));
node00.getChildren().add(new DefaultTreeNode("Node 0.0.0"));
node00.getChildren().add(new DefaultTreeNode("Node 0.0.1"));
node01.getChildren().add(new DefaultTreeNode("Node 0.1.0"));
node10.getChildren().add(new DefaultTreeNode("Node 1.0.0"));
root.getChildren().add(new DefaultTreeNode("Node 2"));
}
public TreeNode getRoot()
{
return root;
}
}
答案 0 :(得分:0)
好的,我找到了。也许我可以帮助别人。
您必须知道liferay bridge已获得Primefaces主要版本的认证,而不是Elite版本。但补丁5.2.4改变了UITree#visitTree的实现,似乎桥接器无法处理这种修改。我不知道为什么,但它不能。所以我重写了一些方法(visitTree / visitFacets / visitNodes),以忽略与访问节点相关的布尔值的改进(说实话,我真的不明白)。 Aaaaand它的作品! Q.E.D