2014-09-05 3 views
1

Я пытаюсь построить дерево поверхностей из базы данных. Но я не мог управлять им. Вот мой XHTML:<p:treeNode> не может получить доступ к <p: tree var = "node">

<p:tree value="#{userBean.root}" 
          var="node" 
          selectionMode="single" 
          selection="#{userBean.selectedNode}" 
          > 

         <p:treeNode> 
          <h:outputText value="#{node}" /> 
         </p:treeNode> 
</p:tree> 

А вот боб:

private List<UserModel> userList; 
private TreeNode root; 
root = new DefaultTreeNode("Root", null); 

    for (int i = 0; i < userList.size(); i++) { 
     TreeNode node = new DefaultTreeNode(userList.get(i) ,root); 

     // node.setRowKey(userList.get(i).getMIdUser() + ""); 
    } 

Что я пытаюсь сделать то, что я хочу, чтобы иметь как имя объекта и его идентификатор, поэтому я добавил объект к узлу дерева по умолчанию. Но на странице xhtml var имя дерева является «узлом». На узле дерева я не могу сказать «node.name»

Надеюсь, я могу объяснить проблему. Спасибо заранее.

ответ

0

Я предполагаю, что вы разместили только соответствующие части вашего компонента и что у вас есть все, что вам нужно, например getRoot() и тому подобное. чем единственное, что я вижу, отсутствует:

<p:tree ... dynamic="true"> 

атрибут в вашем определении дерева. остальные должны работать. Если все еще нет, добавьте больше кода из своего компонента и добавьте IVSOSUserModel в свой пост.

+0

Благодарим вас за ответ. Я не реализовал функцию getRoot(). Это должно быть реализовано? –

+0

и моя главная проблема: я не могу сказать «node.name» –

+0

, если у вас нет getRoot, тогда у вас нет доступа к # {userBean.root}. если код, который вы выложили выше, является вашим bean-компонентом - он тоже не работает. после того, как у вас есть компонент, и вы можете получить доступ ко всем полям (через общедоступные методы ... ...), и поля правильно инициализированы, тогда ваш код будет работать. в тот момент, когда кажется, что вы мало что сделали для этого. –

Смежные вопросы