Bonjour à tous,
Contexte du problème :
Sur une facelet, je réalise un test qui affiche soit un bouton A soit un bouton B, en fonction de la valeur d'une variable
Lorsque je clique sur le bouton A, je suis redirigé vers un popup :
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 <c:choose> <c:when test="${testBean.booleanValue}"> <li data-theme="c" data-icon="fleche_lien_grey"> <a data-rel="dialog" data-transition="none" href="#ship_subscription" > <div class="ui-grid-shipdetail-inspection-psc-zone1"> <div"> <strong>Affichage Bouton A</strong> </div> </div> </a> </li> </c:when> <c:otherwise> <li data-theme="c" data-icon="fleche_lien_grey"> <a data-rel="dialog" data-transition="none" href="#ship_subscription" > <div class="ui-grid-shipdetail-inspection-psc-zone1"> <div"> <strong>Affichage Bouton B</strong> </div> </div> </a> </li> </c:otherwise> </c:choose>
La fonction test de mon bean utilisé sur la page est simple (code réduit au minimum):
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 <div id="ship_subscription" data-role="page"> <div data-role="content"> <p style="text-align:center">Changer le bouton ?</p> <h:form> <a data-role="button" href="#" class="closeDialog"> Oui <f:ajax event="click" listener="#{testBean.test}"/> </a> </h:form> <h:form> <a data-role="button" href="#" class="closeDialog"> Non </a> </h:form> </div> </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @ManagedBean @RequestScoped public class TestBean implements Serializable { ... public boolean updateBooleanValue(){ booleanValue= true; } ... }
Scénario :
- Je clique sur le 1er lien "Affichage Bouton A".
- Un popup s'ouvre.
- Je clique sur le bouton "Oui"
- Ma facelet se met à jour et le 1er lien "Affichage Bouton A" disparait au profit du second lien.
Actuellement, la MAJ de ma facelet ne se fait pas du coup la valeur de test "booleanValue" ne s'actualise pas, et le test ne change pas, du coup, il n'y a jamais de changement de lien.
J'ai utilisé une balise AJAX que propose JSF 2, je ne sais pas si la méthode est correcte, ou s'il existe une autre façon de faire ?
Si vous avez des questions de compréhension, n'hésitez pas, car je ne sais pas si j'ai bien expliqué mon problème
Configuration de mon projet :
- Mojarra 2.2.0
- JSF API 2.2.0
- JSTL 1.2
- PimeFaces
Partager