selectOneMenu, valeur null dans son beanbacking
Bonjour,
Je travaille avec JSF 2 et un peu de Ajax
J'ai deux combos. Le choix du premier combo permet de choisir les valeurs pour remplir de deuxième. J'arrive à remplir le combo mais lorsque j'envoie le form, le bean n'arrive pas à mapper la valeur du deuxième combo et me retourne toujours null.
Mes deux combos sont
Code:
1 2 3 4 5 6 7 8
|
<h:selectOneMenu required="true" id="thread" value="#{bRebatche.thread}" title="Thread">
<f:selectItems value="#{bSuspicious.lstThreads}" />
<f:ajax render="qoAvant" />
</h:selectOneMenu>
<h:selectOneMenu id="qoAvant" value="#{bRebatche.qoAvant}" binding="#{bRebatche.cmbQualiteAvant}" disabled="#{bRebatche.qoAvantDisabled}" required="true" valueChangeListener="#{bRebatche.changeQo}" requiredMessage="Erreur Validation. Qualité Avant. Valuer requise" title="Qualité avant" style="width: 150" immediate="true">
<f:selectItems value="#{bRebatche.codes}" />
</h:selectOneMenu> |
J'ai essayé avec un listener, avec un value pour le combo; avec un HtmlSelectOneMenu comme binding, mais j'arrive pas à afficher aach.
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 41 42 43 44 45 46 47 48
| @ManagedBean
public class BRebatche {
private transient HtmlSelectOneMenu cmbQualiteAvant = new HtmlSelectOneMenu();
private transient HtmlSelectOneMenu cmbThread = new HtmlSelectOneMenu();
private static List<Suspicious> lstRebatche = null;
public String getThread() {
return thread;
}
public void setThread(String thread) {
this.thread = thread;
isQoAvantDisabled = (this.thread==null);
}
public boolean isQoAvantDisabled() {
return isQoAvantDisabled;
}
public void setQoAvantDisabled(boolean isQoAvantDisabled) {
this.isQoAvantDisabled = isQoAvantDisabled;
}
public String getQoAvant() {
return qoAvant;
}
public void setQoAvant(String qoAvant) {
this.qoAvant = qoAvant;
}
public void changeQo(ValueChangeEvent event) {
System.out.println(event.getNewValue().toString());
qoAvant = event.getNewValue().toString();
}
public List<SelectItem> getCodes() {
List<SelectItem> items = new ArrayList<SelectItem>();
items.add(new SelectItem(null, "Choisissez"));
if(!isQoAvantDisabled && (thread != null)) {
if("4".equals(thread)){
//rien pour l'instant
}else{//Liste affiché
items = BSuspicious.getLstMelange();
}
}
return items;
}
public void saveRegister(){
//ICI J'AI TOUT NULL
System.out.println(this.qoAvant);
System.out.println(this.cmbQualiteApres.getValue());
} |
Please... si y a qqun qui peut m'aider... tout fonctionnait bien jusqu'à ce qu'on m'a demandé de faire la relation entre ces deux combos...