Krzysztof Z.

Krzysztof Z. Programista PHP/
Webdeveloper

Temat: JSF 2 ValueChangeListener walidacja

Witam,
mam checkboxa z listenerem:

<h:selectBooleanCheckbox onchange="submit()" immediate="true" valueChangeListener="#{bean.change}" />

W jaki sposób zrobić aby listener nie był wysyłany po naciśnięciu submita tylko przy zmianie selecta, bo z walidacją sobie poradziłem.

PozdrawiamKrzysztof Z. edytował(a) ten post dnia 11.07.11 o godzinie 18:46
Piotr Wierzbowski

Piotr Wierzbowski IT Architect, Asseco
Poland S.A.

Temat: JSF 2 ValueChangeListener walidacja

Nie bardzo rozumiem co znaczy że listener ma nie być wysyłany.
Masz tu chyba skonfigurowane tak, że każda zmiana na elemencie powoduje wysłanie formularza, wiec kazda zmiana w formularzu powoduje tak jakby nacisniecie submita.
Immediate powoduje nadanie wiekszego priorytetu komponentowi i przejscie przez walidacje i update beanow w fazie która normalnie jest przed walidacją reszty komponentów.

Using immediate means the component value will be validated during apply-request-values, ie before any non-immediate component values (which validate in process-validations). Any validation error in the set of input components that are marked immediate will cause processing to move to the render phase after the apply-request-values phase is complete, meaning that if any immediate component fails validation then errors associated with non-immediate components will not be shown. In addition, if the new value of an immediate input component is different from the existing value specified by the value attribute then a ValueChangeEvent is raised (as normal), but this event is processed at the end of the ApplyRequestValues phase, NOT at the end of the ProcessValidations phase. In particular, this means that any ValueChangeListener associated with the component will execute before any immediate !UICommand component's ActionListener (assuming the command component occurs later in the page).

Marking an input component as immediate does NOT affect the model update; any new data is still pushed into the model at the Update Model phase (ie after any immediate command components have executed). Note, however, that the ValueChangeListener could be used to update the model directly.


Jezeli chcesz miec jakas funkcje wywołaną po zmianie wartosci danego komponentu, ale bez wysyłania całego formularza użyj f:ajax (jsf 2), np.

http://www.ibm.com/developerworks/java/library/j-jsf2fu3/
Krzysztof Z.

Krzysztof Z. Programista PHP/
Webdeveloper

Temat: JSF 2 ValueChangeListener walidacja

no fakt ;)
dzięki wielkie.Krzysztof Z. edytował(a) ten post dnia 13.07.11 o godzinie 17:59

Następna dyskusja:

Wykresy w JSF




Wyślij zaproszenie do