Diese Frage steht in engem Zusammenhang mit this eine (die beantwortet wurde).Senden einer Weiterleitung von innerhalb einer Ajax-Listener-Methode
Während meines Projekts navigiere ich zwischen den Bildschirmen mit JSF-Befehlsschaltflächen, wobei das Aktionsattribut auf eine Funktion verweist, die eine Zeichenfolge zurückgibt. Die Zeichenfolge ist der Name des neuen Bildschirms, z.
<h:commandButton value="Select" action="#{searchResultsBundledBean.selectFlight}">
</h:commandButton>
selectFlight
würde eine Zeichenkette zurück, z.B. selected-flight-review
, die den Benutzer zu selected-flight-review.xhtml
leiten würde Für mobile Zwecke musste ich eine panelGrid
klickbar mit einem Ajax Anruf, z.
<h:panelGrid>
<f:ajax event="click" listener="#{searchResultsBundledBean.clickFlight(lowFareBundledSearchItem)}"/>
</h:panelGrid
Dies funktioniert, ich habe es ausprobiert, und das richtige Ergebnis zurückgegeben wird (getestet mit der Anmeldung direkt bevor es zurückgegeben wird)
jedoch keine Umleitung stattfindet. Der Ajax-Aufruf macht es noch nicht. Wie kann ich es auf einen anderen Bildschirm umleiten? Ich muss keine Variablen senden, ich brauche nur den neuen Bildschirm, der angezeigt werden soll. Sollte ich etwas anderes als Ajax verwenden (würde ich lieber nicht), oder gibt es einen Weg, dies so zu machen, wie es jetzt ist?
Haben Sie versucht mit '? Faces-redirect = true' angehängt? Siehe http://StackOverflow.com/a/7928396/1199132 –
Ja, habe das schon versucht. Sie gibt die geänderte Zeichenfolge (mit der angehängten Umleitung) zurück, tut aber nichts damit. Das Problem, mit dem ich hier festhalte, ist, dass der Ajax nicht mit einem commandLink oder commandButton verknüpft ist. – Skytiger