To pytanie jest ściśle związane z this jeden (który został odebrany).Wysyłanie przekierowania od wewnątrz metody ajax listener
W całym projekcie nawiguję pomiędzy ekranami za pomocą przycisków poleceń JSF, gdzie atrybut działania wskazuje na funkcję, która zwraca ciąg znaków. Ciąg to nazwa nowego ekranu, np.
<h:commandButton value="Select" action="#{searchResultsBundledBean.selectFlight}">
</h:commandButton>
selectFlight
zwróci ciąg znaków, np. selected-flight-review
, który skieruje użytkownika do: selected-flight-review.xhtml
Do celów mobilnych musiałem wykonać kliknięcie za pomocą wywołania ajaxowego, np. panelGrid
.
<h:panelGrid>
<f:ajax event="click" listener="#{searchResultsBundledBean.clickFlight(lowFareBundledSearchItem)}"/>
</h:panelGrid
To działa, Przetestowałem go i poprawny wynik jest zwracany (Testowane z zalogowaniu się tuż przed jej zwrócone)
Jednak nie przekierowanie odbywa. Wywołanie ajax jeszcze tego nie robi. Jak mogę przekierować na inny ekran? Nie muszę przesyłać żadnych zmiennych, potrzebuję tylko nowego ekranu do wyświetlenia. Czy powinienem używać czegoś innego niż ajax (wolałbym tego nie robić), czy jest jakiś sposób, aby uczynić tę pracę tak, jak jest teraz?
Czy próbowałeś z dołączonym '? Faces-redirect = true'? Zobacz http://stackoverflow.com/a/7928396/1199132 –
Tak, już to wypróbowałem. Zwraca zmodyfikowany ciąg znaków (z dołączonym przekierowaniem), ale w rzeczywistości nic z nim nie robi. Problem, który tu utknąłem, polega na tym, że ajax nie jest skojarzony z poleceniem CommandLink lub commandButton – Skytiger