Questa domanda è strettamente correlata a this una (a cui è stata data una risposta).Invio di un reindirizzamento dall'interno di un metodo di ascolto Ajax
Durante il mio progetto, navigo tra le schermate usando i pulsanti di comando JSF, dove l'attributo action punta a una funzione che restituisce una stringa. La stringa è il nome della nuova schermata, ad es.
<h:commandButton value="Select" action="#{searchResultsBundledBean.selectFlight}">
</h:commandButton>
selectFlight
restituirebbe una stringa, ad esempio selected-flight-review
che indirizza l'utente a selected-flight-review.xhtml
Per scopi mobili ho dovuto fare un clic su panelGrid
utilizzando una chiamata ajax, ad es.
<h:panelGrid>
<f:ajax event="click" listener="#{searchResultsBundledBean.clickFlight(lowFareBundledSearchItem)}"/>
</h:panelGrid
Questo funziona, ho provato, e il risultato corretto viene restituito (testato con la registrazione nel modo giusto prima di essere restituito)
Tuttavia, nessun reindirizzamento avviene. La chiamata ajax non lo fa ancora. Come faccio a reindirizzare su un altro schermo? Non devo inviare alcuna variabile, ho solo bisogno che venga visualizzata la nuova schermata. Dovrei usare qualcosa di diverso da Ajax (preferirei non farlo), o c'è un modo per rendere questo lavoro così com'è adesso?
Hai provato con '? Faces-redirect = true' aggiunto? Vedi http://stackoverflow.com/a/7928396/1199132 –
Sì, già provato. Restituisce la stringa modificata (con il redirect aggiunto), ma in realtà non fa nulla con esso. Il problema con cui mi trovo qui è che l'ajax non è associato a un commandLink o commandButton – Skytiger