refresh d'un "a4j:outputPanel"
Bonjour,
Je débute en JSF avec SEAM et je n'arrive pas a rafraichir qu'une partie de la page.
Ma page est découpé en 3 parties :
- un div qui contient un "h:selectOneRadio"
- un div qui contient une zone de saisie A
- un div qui contient une zone de saisie B
L'objectif est d'afficher une zone de saisie A si je clique sur la valeur "defense" du radio ou une zone de saisie B si je clique sur la valeur "attaque" du radio
Le code de mon XHTML
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<s:div styleClass="B2">
<h:outputText value="Type de saisie : "/>
<h:selectOneRadio id="type_saisi" immediate="true" value="#{Bean.choixAffichage}">
<f:selectItem itemLabel="Defense" itemValue="defense" />
<f:selectItem itemLabel="Attaque" itemValue="attaque" />
<a4j:support event="onchange" reRender="bloc_saisi_attaque,bloc_saisi_defense" />
</h:selectOneRadio>
</s:div>
<a4j:outputPanel ajaxRendered="true" rendered="#{Bean.bolRegionAttaque}" id="bloc_saisi_attaque">
<s:div styleClass="B3" id="saisi_attaque" >
<h:outputText value="Attaque"/>
</s:div>
</a4j:outputPanel>
<a4j:outputPanel ajaxRendered="true" rendered="#{Bean.bolRegionDefense}" id="bloc_saisi_defense">
<s:div styleClass="B3" id="saisi_defense">
<h:outputText value="Defense"/>
</s:div>
</a4j:outputPanel> |
Le code de mon bean
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
// Valeur du choix du radio
private String choixAffichage ="defense";
public String getChoixAffichage() {
return choixAffichage;
}
public void setChoixAffichage(String strpChoixAffichage) {
choixAffichage = strpChoixAffichage;
if(choixAffichage.equalsIgnoreCase("defense")){
setBolRegionAttaque(false);
setBolRegionDefense(true);
}
else {
setBolRegionAttaque(true);
setBolRegionAttaque(false);
}
System.out.println(choixAffichage);
}
// Affichage du bloc Attaque
boolean bolRegionAttaque = false;
public boolean isBolRegionAttaque() {
return bolRegionAttaque;
}
public void setBolRegionAttaque(boolean bolRegionAttaque) {
this.bolRegionAttaque = bolRegionAttaque;
}
// Affichage du bloc Defense
boolean bolRegionDefense = true;
public boolean isBolRegionDefense() {
return bolRegionDefense;
}
public void setBolRegionDefense(boolean bolRegionDefense) {
this.bolRegionDefense = bolRegionDefense;
} |
Pouvez-vous m'aider a trouver pourquoi je n'arrive pas a afficher qu'un des 2 bloques avec le reRender du radio :( (sachant que j'utilise un rendered sur les 2 bloques pour savoir s'ils doivent s'afficher) ?
merci pour votre aide