Ho una pagina JSF che non è protetta da j_security_check
. Esegui i seguenti passi:ViewExpiredException non lanciato su una richiesta jax se la pagina JSF è protetta da j_security_check
- Apre la pagina JSF in un browser.
- Riavviare il server.
- Fare clic su un pulsante di comando nella pagina JSF per avviare una chiamata Ajax.
Firebug indica che un ViewExpiredException
viene generato come previsto.
Messaggio:
javax.faces.ViewState=8887124636062606698:-1513851009188353364
Risposta:
<partial-response> <error> <error-name>class javax.faces.application.ViewExpiredException</error-name> <error-message>viewId:/viewer.xhtml - View /viewer.xhtml could not be restored.</error-message> </error> </partial-response>
Tuttavia, una volta a configurare la pagina per essere protetto da j_security_check
ed eseguire la stessa procedura di cui sopra, stranamente (per me) lo ViewExpiredException
non viene più generato. Invece, la risposta è solo un nuovo stato di visualizzazione.
Messaggio:
javax.faces.ViewState=-4873187770744721574:8069938124611303615
Risposta:
<partial-response> <changes> <update id="javax.faces.ViewState">234065619769382809:-4498953143834600826</update> </changes> </partial-response>
Qualcuno può aiutarmi a capirlo? Mi aspetto che generi un'eccezione in modo da poter elaborare quell'eccezione e mostrare una pagina di errore. Ora risponde solo con un nuovo ViewState, la mia pagina è rimasta bloccata senza alcun feedback visivo.
Grazie BalusC. Ho salvato la mia giornata. –
Prego. – BalusC
Oh un'ulteriore domanda, mi chiedo perché succede quanto segue: Se uso context.getExternalContext(). Redirect (loginURL), in effetti mi reindirizza alla pagina di login. Ma dopo l'accesso, un file xml, con ViewState come contenuto, viene visualizzato dal browser. Il file xml è esattamente lo stesso del secondo file xml che ho postato nella mia domanda. Se utilizzo context.getExternalContext(). Redirect (homepageURL), tutto funziona correttamente. Mi richiederà la pagina di accesso. Una volta effettuato il login, verrà visualizzata la home page. –