2014-04-23 13 views
5

Come eseguire la pagina interna JSF in avanti in modo programmatico nel bean gestito, in alcune condizioni (come quando si verifica un'eccezione)? Non voglio cambiare l'URL durante l'inoltro ad altra pagina.Come inoltrare in modo programmatico la pagina interna JSF?

In questo momento ho reindirizzato a un'altra pagina utilizzando questo codice, ma questo cambia l'URL.

FacesContext.getCurrentInstance().getExternalContext().redirect(); 

risposta

4

Prova questa:

public void forward(){ 
    String uri = "destination.xhtml"; 
    FacesContext.getCurrentInstance().getExternalContext().dispatch(uri); 
} 
+0

Grazie, .. questo funziona! È questo metodo standard per fare avanzare la pagina a livello di programmazione o è una soluzione alternativa? –

+0

@ user01: questo è il modo standard al momento :) –

+2

questo è il reindirizzamento servlet, per utilizzare il gestore di navigazione JSF utilizzare: FacesContext.getCurrentInstance(). GetApplication(). GetNavigationHandler(). HandleNavigation (FacesContext.getCurrentInstance(), null , "YOUR_NAVIGATION_CASE_DEFINED_IN_FACES_CONFIG"); –

1

Si può fare usando

FacesContext.getCurrentInstance().getViewRoot().setViewId("your target view id"); 
    FacesContext.getCurrentInstance().renderResponse(); 

oppure è possibile utilizzare

FacesContext.getCurrentInstance().responseComplete(); 

Spero che questo aiuti.

Problemi correlati