2009-04-29 19 views
0

I verwendet ICEfaces 1.7.1, und ich verwende Eis: input mit valueChangeListener wie folgt aus:Frage zum ICEfaces und valueChangeListener

<ice:inputText value="#{myBean.name}" valueChangeListener="#{myBean.nameChangedListener}"/> 

In MyBean.java ich habe:

public void nameChangedListener(ValueChangeEvent event){ 
    // test the new value : if it's ok continue but if it is not ok i need it to keep the old value. 
    // I know that the valueChangeListener invoked before the old value is replaced by the newValue, is it ok?, and if ok : what to do to keep the oldValue if the newValue is worng 
} 

Nochmals vielen Dank für jede Hilfe .....

Antwort

1

Wertänderung Listener können nicht verwendet werden, um die Werte zu ändern, die geändert werden (FYI: sie werden in der Validierungsphase aufgerufen). Werfen Sie einen Blick auf converters und validators - sie verhindern, dass Junk-Daten in Ihr Modell gelangen.

Ein Bereich, der viele Leute stolpert, ist, dass ein eingereichtes Formular, das ungültige Daten enthält, das Abfeuern von Aktionen verhindert. Dies ist beabsichtigt - es verhindert, dass Geschäftslogik mit fehlerhaften Daten arbeitet. Wenn Sie eine Aktion auslösen müssen, obwohl ungültige Daten in der Anforderung vorhanden sind, können Sie das JSF-Validierungsmodell nicht verwenden und müssen die Validierung in Ihre Aktionslogik integrieren.