Rafraichissement test JSF
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:
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:
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:
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