2013-10-01 2 views
8

Come reindirizzare alla stessa pagina (non conosco la pagina, il reindirizzamento avviene all'interno di un menu condiviso da più pagine)?Come reindirizzare alla stessa pagina dopo una richiesta POST

ho cercato

return "?faces-redirect=true"; 

alla fine del metodo di azione, ma ho ricevuto un messaggio di errore perché non è possibile trovare un caso di navigazione per "? Facce-redirect = true".

Grazie in anticipo per il vostro aiuto.

risposta

18

È necessario fornire un ID di vista valido nel risultato e non solo una stringa di query. È possibile ottenere l'ID vista corrente per UIViewRoot#getViewId().

String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId(); 
return viewId + "?faces-redirect=true"; 
-1

È sufficiente restituire null o una stringa vuota dall'azione dell'applicazione.

Secondo JSF2.2 spec, sezione 7.4.1:

Se l'esito restituito dall'azione applicazione è nullo o stringa vuota, e nessuno dei casi di navigazione che mappano alla l'attuale identificatore ha un'espressione di condizione non nulla, la stessa vista deve essere nuovamente visualizzata.

+0

È anche possibile avere un metodo di annullamento. È ancora più chiaro. È lo stesso e funziona perfettamente. – zmirc

+3

Questo non esegue un reindirizzamento. Questo esegue un forward. – BalusC