JSF salta fasi - Come eseguire il debug che?
Domanda
Sono il debug di un'applicazione JSF straniera. Il problema è, che invio un modulo, ma i valori non sono riportati.
Con una fase ascoltatore posso vedere, che il ciclo di vita non viene eseguito completamente attraverso, per così dire salta fase 2 -5: Dopo la fase di visualizzazione di ripristino, la fase di render response viene chiamato direttamente. Mi mancano i valori, la convalida, le azioni si applicano modello di aggiornamento e così via.
Quindi, questo potrebbe essere un problema di pollo e uova: 1. Le fasi responsabili non sono chiamati, in modo che il nuovo input modulo non può essere riportato. 2. Il sistema non riconosce nessun nuovo input e quindi direttamente dopo il ripristino rende la vista.
ho controllato che non v'è alcuna chiamata di responseComplete () oder renderResponse ().
Sono bloccato in qualche modo. Qualche idea per convalidare una delle due ipotesi? O il modo di eseguire il debug che in generale? Forse qualcuno ha un problema simile?
Aggiorna
Ho il sospetto, che JSF non è a conoscenza delle richiesta di postback e gestisce questo come un vista iniziale . Questo spiegherebbe, che mi passa solo la fase 1 e 6.
Come faccio a verificare, se JSF riconosce questo come un non-faces-request ?
Come posso controllare, se non v'è l'appropriata treeID nella facesContext
corrente.
Soluzione 2
Trovato la soluzione! Mi dispiace, ma era molto specifica applicazione immagino: L'usanza StateManager per JSF non era utilizzabile con JSF 1.2. Che ha causato questo strano errore. Ha ottenuto lo StateManager fisso e tutto ha funzionato bene. Questo è amaro e costano un sacco di tempo: - (
Grazie per il vostro aiuto in ogni caso: -)
Altri suggerimenti
sto citando da una risposta che ho postato prima :
Ogni volta che un componente
UICommand
non riesce a richiamare l'azione associata, verificare quanto segue:
- componenti
UICommand
devono essere posizionati all'interno di un componenteUIForm
(Ad esempioh:form
).- Non puoi nido più componenti
UIForm
a vicenda (Attenzione con includere i file!).- avrebbe dovuto essere verificato Nessun errore di validazione / conversione (uso
h:messages
per farli tutti).- Se i componenti
UICommand
sono collocati all'interno di una componenteUIData
, assicurare che esattamente lo stessoDataModel
(l'oggetto dietro la attributoUIData
divalue
) è conservato.- I
rendered
edisabled
attributi del componente e tutti i componenti principali non dovrebbero valutare afalse
durante applicarsi valori di richiesta di fase.- Assicurarsi che nessun
PhaseListener
o qualsiasiEventListener
nel catena richiesta-risposta ha cambiato JSF ciclo di vita per saltare l'invoke l'azione di fase.- Assicurarsi che nessun
Filter
oServlet
nella stessa richiesta-risposta catena ha bloccato la richiesta fo laFacesServlet
in qualche modo.
Dal momento che nel tuo caso particolare, le fasi 2-5 sono stato ignorato e che si è certi (?) Che FacesContext#renderResponse()
non è stato chiamato, le cause 3, 6 e 7 possono essere graffiato dalla lista. Le cause 4 e 5 possono probabilmente essere anche graffiato, a seconda del modo in cui si debug le fasi JSF. Indagare le altre cause. I miei centesimi su causa 2. Controllare se non si vede <form><form></form></form>
nel codice HTML generato e tornate in questa fonte JSF.