Bonjour.
Tout d'abord merci pour votre aide.
J'ai un problème de rendu des composants lié à l'utilisation de template. En effet, toute la page n'est pas rendue lors du lcik d'un lien dans un formulaire alors que l'attribut render du tag ajax est @all.
Je fais un exemple simple (je passe les balises head,html, etc...) :
-J'ai un template template.xhtml qui va contenir un menu et un contenu
template.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <h:body style="background-color: #A0BFED;"> <c:view> <ui:insert name="menu"> <ui:include src="/menu.xhtml"/> </ui:insert> <ui:insert name="contenu"></ui:insert> </c:view> </h:body>
-Le menu menu.xhtml avec des liens vers page1 et page2
menu.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <ui:composition template="template.xhtml"> <ui:define name="menu"> <h:form> <h:commandBouton action="page1" value="versPage1"> <h:commandBouton action="page2" value="versPage2"> </h:form> </ui:define> </ui:composition>
-La partie cliente page1.xhtml possèdant un lien vers page 2 avec un tag ajax.
page1.xhtml
-La partie cliente page2.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <ui:composition template="template.xhtml"> <ui:define name="contenu"> <h:form> <h:commandLink action="page2" value="versPage2"> <c:ajax execute="@this" render="@all"/> </h:commandLink> </h:form> </ui:define> </ui:composition>
page2.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <ui:composition template="template.xhtml"> <ui:define name="contenu"> <h:outputText value="Page2"/> </ui:composition>
Les actions :
-ouverture de la page page1.xhtml (ok)
-click sur "versPage2" (ok : la page2 s'affiche)
-click sur "versPage1" du menu (rien ne se passe)
-2e click sur "versPage1" du menu (ok : la page1 s'affiche)
En cliquant sur le lien dans la page1, pourquoi est ce que cela ne rafraichit pas le menu alors que l'attribut render du tag ajax est @all?
En effet lorsque l'on clique sur un des boutons du menu, cela doit executer et rendre l'ensemble de la page, mais pourtant cela ne redirige pas vers page1 ou autres... il faut faire un 2e click.
Dans mon utilisation en fait l'idée est d'utiliser le tag ajax avec execute=@this pour pouvoir naviguer de page en page sans faire intervenir des validateurs présents dans le même formulaire
Des idées ? des trucs que je fais mals ? des astuces ? merci beaucoup !
Partager