hello,
J'essaye de faire une page template, articulée comme un site classique : header, menu a gauche et contenu qui change à droite.
mon menu est placé dans ma page template. Il fonctionne avec RichFaces :
J'ai tout d'abord pensé faire un template général, et l'inclure au début de chaque page du site, avec :
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 <r:panelMenu style="width:200px" mode="ajax" iconExpandedGroup="disc" iconCollapsedGroup="disc" iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right" iconCollapsedTopGroup="chevronDown"> <r:panelMenuGroup label="Pages"> <r:panelMenuGroup label="1"> <r:panelMenuItem label="1" action="page1"> <f:param name="current" value="1" /> </r:panelMenuItem> <r:panelMenuItem label="2" action="page2"> <f:param name="current" value="2" /> </r:panelMenuItem> ........ ....
Et pour la navigation, j'utilisais les navigation-rules de faces-config.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <%@ include file="../template/template.jsp"%>
Ca marche bien, excepté que : c'est très long au chargement de chaque page, et il me rafraichit tout à chaque fois, y compris mon menu(ce qui est facheux, mais logique il me semble).
J'ai donc cherché une autre solution : Faire un template qui contient lui même un include, modifiable et rafraichissable en focntion du choix via le menu. Je me suis appuyé notemment sur d'autres post
J'ai du opter pour le tag
car l'autre ne peux pas interpréter le #{bean}.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <jsp:include page
Mais je ne m'en sors pas. Au final, je ne sais plus quoi essayer.
Voila pour l'instant ou j'en suis :
J'ai un beanTemplate tout bête :
Et un voila mon menu et la partie à rafraîchir :
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 public class TemplateManager{ private String pageURL; public TemplateBean(){ this.pageURL = "../contenu/pageDepart.jsp"; } public String getPageURL() { return pageURL; } public void setPageURL(String pageURL) { this.pageURL = pageURL; } public void pageURL1() { this.pageURL="../contenu/MaPage1.jsp"; } }
Tel quel, pour l'instant, ca ne me fait pas d'erreur. Au lancement du template, j'ai bien ma "pageDepart". Mais ca marche pas non plus, ca me rend une page blanche si je clique dans le menu pour accéder à la MaPage1...
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 ....... ........... <r:panelMenu style="width:200px" mode="ajax" iconExpandedGroup="disc" iconCollapsedGroup="disc" iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right" iconCollapsedTopGroup="chevronDown"> <r:panelMenuGroup label="Pages"> <r:panelMenuGroup label="MesPages"> <r:panelMenuItem label="MaPage1" action="#{TemplateManager.pageURL1}"> <f:param name="current" value="1" /> </r:panelMenuItem> ............. ....... ...... ............ <div > <a4j:region id="contenuRegion"> <jsp:include page="#{TemplateBean.pageURL}"/> </a4j:region> <div> ........... .....
je sais que c'est un sujet de discussion redondant, mais je ne trouve pas vraiment de technique proposée et qui marche bien... Auriez vous des conseils, des idées, des reproches ?
merci d'avance
Partager