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

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>
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
<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>
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
 
    @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