JSF bouton de commande avec immediate=“true”

J'ai une situation où il y a un selectOneMenu qui a une valeur liée à un backing bean.

J'ai besoin d'avoir un bouton qui n'a pas de modèle de mise à jour des valeurs (c'est pourquoi il a immediate="true" propriété).

Que le bouton d'action de la méthode change la valeur de la selectOneMenu est lié, mais quand la page se réaffiche la valeur d'origine est affichée (celui qui a été soumis) et non pas celui qui est défini dans la méthode d'action.

Des idées pourquoi ce qui se passe?

Si je n'ai pas expliquer le problème assez bon, s'il vous plaît laissez-moi savoir.


EDIT:
Comme demandé voici le code source en question:

code de la page:

<h:selectOneMenu id="selectedPerson" 
                 binding="#{bindings.selectPersonComponent}" 
                 value="#{bean.selectedPerson}">
   <s:selectItems var="op" value="#{bean.allPersons}" 
                  label="#{op.osoba.ime} #{op.osoba.prezime}" 
                  noSelectionLabel="#{messages.selectAPerson}">
   </s:selectItems>
   <f:converter converterId="unmanagedEntityConverter" />
</h:selectOneMenu>
...
<a4j:commandButton action="#{bean.createNew}" value="#{messages.createNew}"
     immediate="true" reRender="panelImovine">
</a4j:commandButton>

de code java:

private Person selectedPerson;

public String createNew() {
    log.debug("New created...");
    selectedPerson = null;
    bindings.getSelectPersonComponent().setSubmittedValue(null); //SOLUTION
    return "";
}

La solution est dans la ligné marqué la SOLUTION 🙂

  • Vous pouvez poster votre JSF et de haricots code s'il vous plaît?
InformationsquelleAutor ivans | 2009-03-06