Skytiger Skytiger - 7 months ago 30
Ajax Question

Sending a redirect from inside an ajax listener method

This question is closely related to this one (which has been answered).

Throughout my project, I navigate between screens using JSF command buttons, where the action attribute would point to a function that returns a string. The string is the new screen's name e.g.

<h:commandButton value="Select" action="#{searchResultsBundledBean.selectFlight}">

would return a string, e.g.
which would direct the user to

For mobile purposes I had to make a
clickable using an ajax call, e.g.

<f:ajax event="click" listener="#{searchResultsBundledBean.clickFlight(lowFareBundledSearchItem)}"/>

This works, I've tested it, and the correct result is returned(Tested with logging it right before it's returned)

However, no redirection takes place. The ajax call doesn't do it yet. How do I make it redirect to another screen? I don't have to send through any variables, I just need the new screen to be displayed. Should I use something other than ajax(I would prefer not to), or is there some way to make this work the way it is now?


You can redirect the response from the backing bean:

public void clickFlight(Item lowFareBundledSearchItem) throws IOException {
    // ...