如何获取PrimeFaces树节点的根?

时间:2018-03-05 13:26:11

标签: primefaces tree

我有一个从控制器获取TreeNode的html页面。

affectationController.getDossierEnBrefAffectations()

这样,treeContent="${affectationControleur.consulterDossierEnBrefAffectations.children[0]}"是一个返回该树节点的函数。我想得到这棵树的根节点。

我尝试使用flask因为TreeNode类具有函数getChildren。但它不是EL的正确语法。

1 个答案:

答案 0 :(得分:1)

如果您还没有扩展DefaultTreeNode类或实现界面,请执行此操作。现在,您只需将此方法添加到树节点实现中即可:

public TreeNode getRoot() {
  if (getParent() == null) {
    return this;
  }
  TreeNode root = getParent();
  while (root.getParent() != null) {
    root = root.getParent();
  }
  return root;
}

这允许您使用:#{bean.treeNode.root}

如果你不能改变模型,你可以在你的bean中添加类似的东西:

public TreeNode getRoot(TreeNode node) {
  if (node.getParent() == null) {
    return node;
  }
  TreeNode root = node.getParent();
  while (root.getParent() != null) {
    root = root.getParent();
  }
  return root;
}

这允许您使用:#{bean.getRoot(treeNode)}