2013-01-05 8 views
7

Sono bloccato con un problema su valueChangeListener. Sto usando JSF 1.2 su Weblogic 6.0.Come ottenere i valori del modello aggiornati in un metodo valueChangeListener?

Ho una pagina, dove sulla parte superiore della pagina ci sono 2 pulsanti di opzione con nome Name1 e Name2. Quando si fa clic su Nome1, i dettagli Nome1 (ci sono circa 30 campi) vengono visualizzati sotto i pulsanti di opzione e quando si fa clic su Nome2, vengono visualizzati i dettagli Nome2. Ora l'utente può aggiornare i dettagli con nome cliccati. per esempio. l'utente fa clic su Nome1 e modifica il campo dell'indirizzo, quindi fa clic su Nome2 e modifica l'età di Nome2. Quando l'utente fa clic su Nome1, l'indirizzo deve essere visualizzato aggiornato con il nuovo valore e nuovamente quando l'utente fa clic su Nome2, l'età deve essere aggiornata.

ho usato valueChangeListener per affrontarlo perché ho bisogno il valore vecchio e nuovo della manifestazione modificato. Il problema è che non appena viene richiamato valueChangeListener alla fine della fase VALIDATION, non ricevo l'indirizzo aggiornato del campo Name1 nel metodo valueChangeListener. Qualcuno può aiutarmi a risolvere qualsiasi problema?

risposta

14

come valueChangeListener viene richiamato al termine della fase di validazione, non ricevo l'indirizzo aggiornato del campo Name1 nel metodo valueChangeListener

coda l'evento alla fase INVOKE_ACTION così che agisce come un metodo di azione (ascoltatore).

public void valueChangeListenerMethod(ValueChangeEvent event) { 
    if (event.getPhaseId() != PhaseId.INVOKE_APPLICATION) { 
     event.setPhaseId(PhaseId.INVOKE_APPLICATION); 
     event.queue(); 
     return; 
    } 

    // Do your original job here. 
    // It will only be entered when current phase ID is INVOKE_APPLICATION. 
} 

Come INVOKE_ACTION piste fase dopo UPDATE_MODEL_VALUES, i valori del modello aggiornati saranno disponibili solo "il solito modo".

+1

Grazie mille BalusC. Funziona. Ogni volta che sono bloccato su alcuni problemi JSF, cerco sempre i tuoi suggerimenti nello stackoverflow e trovo che le tue risposte siano molto semplici e chiare da seguire. Grazie ancora. – Suman

+1

Prego. – BalusC

+0

Non direttamente connessi alla domanda, ma qualche altra informazione se qualcuno userebbe questa soluzione: sappiate che se avete altri ValueChangeListeners registrati per questo campo, verranno attivati ​​anche due volte. Immagino sia uno scenario specifico tranquillo, ma comunque buono a sapersi. – whitesite

Problemi correlati