Bonjour à tous,
j'essaie d'afficher un arbre de données sur une page web à partir d'une base de données.
je travaille avec hibernate pour la connection à la BD, pour la présentation j'utilise struts, et pour afficher mon arbre il y struts layout en utilisant le tag treeview.
Mon problème c'est lors de l'affichage de l'arbre, j'en ai que les fils de la racine affichés, et les nœuds s'ouvrent pas.
je vous donne le code:
l'action qui construit l'arbre:
en tree.jsp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public ActionForward treeView(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Objectif pere = metier.getManagerO().getByPrimaryKey(new Objectif(), "PlanAction"); String location = null; MenuComponent racine = new MenuComponent(); racine.setTitle(pere.getCode()); racine.setName("PlanAction"); List<Objectif> fils = metier.fils(pere); for (Objectif f : fils) { MenuComponent menuObjectifFils = method(f, location); racine.addMenuComponent(menuObjectifFils); } if (request.getSession().getAttribute(MenuRepository.MENU_REPOSITORY_KEY) == null) { request.getSession().setAttribute(MenuRepository.MENU_REPOSITORY_KEY, new MenuRepository()); } ((MenuRepository) request.getSession().getAttribute(MenuRepository.MENU_REPOSITORY_KEY)).addMenu(racine); return mapping.findForward("tree"); } public MenuComponent method(Objectif objectif, String location) { MenuComponent menuObjectif = new MenuComponent(); menuObjectif.setTitle(objectif.getCode()); menuObjectif.setName(objectif.getCode()); //menuObjectif.setLocation(location); List<Objectif> fils = metier.fils(objectif); if (!fils.isEmpty()) { for (Objectif f : fils) { MenuComponent menuObjectifFils = method(f, location); menuObjectif.addMenuComponent(menuObjectifFils); } } return menuObjectif; }
l'action dans struts-config:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <div align="center"> <layout:grid> <layout:panel styleClass="FORM"> <layout:treeview name="PlanAction"/> </layout:panel> </layout:grid> </div>
SVP, j'ai essayé de voir les autre discussions mais j'ai pas réussi à résoudre mon problème, et là je vous demande de l'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <action name="LoginForm" path="/Arborescence" scope="session" parameter="method" type="com.myapp.struts.ArborescenceAction" validate="false"> <forward name="tree" path="/JSP/treeOfActions.jsp" /> </action> <action path="/treeview" type="fr.improve.struts.taglib.layout.treeview.TreeviewAction" scope="request" validate="false" />
Et merci d'avance!
Partager