Bonjour,
J'ai créé un arbre avec Primefaces et je souhaite que, lorsqu'on sélectionne un mot de l'arbre, des informations propres à ce mot s'affichent dynamiquement dans ma page. Pour les informations contenues dans des int et des String, tout fonctionne bien, en revanche lorsqu'il s'agit de listes (ArrayList<String>) j'ai besoin d'actualiser ma page pour que les informations apparaissent.
Pour l'instant j'ai mis des informations en dure (plus tard il faudra aller les chercher en base de données puisqu'elles doivent être propre à chaque mot), donc actuellement rien ne s'affiche quand la page s'ouvre et, à la sélection d'un mot, les informations apparaissent (changer de mot ne change donc rien ensuite, c'est juste pour tester le bon fonctionnement de l'affichage).
Voici le code de la fonction de sélection d'un mot de l'arbre dans ma classe TreeBean :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void onNodeSelect(NodeSelectEvent event) { this.nom = this.selectedNode.toString(); this.info1= "10"; ArrayList<String> temp = new ArrayList<String>(); String s = "nouveau terme"; temp.add(s); this.info2= temp; this.date = "10/10/10"; }
info1 est un int, nom est un String et info2 est une ArrayList<String>.
Voici le code de mon arbre :
Code JSF : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <h:form id="form"> <p:tree value="#{treeBean.root}" var="node" dynamic="true" cache="true" selectionMode="single" selection="#{treeBean.selectedNode}" id="tree"> <p:ajax event="expand" listener="#{treeBean.onNodeExpand}" /> <p:ajax event="select" update=":testOut1,:testOut2,:testOut3,:testOut4" listener="#{treeBean.onNodeSelect}" /> <p:treeNode> <h:outputText value="#{node}"/> </p:treeNode> </p:tree> </h:form>
Et enfin le code d'affichage de la liste (je ne met pas l'affichag int/String puisqu'il fonctionne bien) :
Code JSF : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <ul> <ui:repeat id="testOut2" value="#{treeBean.info2}" var="item"> <li>#{item}</li> </ui:repeat> </ul>
Voilà voilà, si je n'ai pas été claire ou s'il manque des informations n'hésitez pas à me les demander Merci d'avance !
Partager