Source Viewer : WEB-INF/classes/org/apache/click/examples/page/ajax/AjaxRedirectPage.java
package org.apache.click.examples.page.ajax; import java.util.Date; import org.apache.click.ActionResult; import org.apache.click.Context; import org.apache.click.Control; import org.apache.click.ajax.DefaultAjaxBehavior; import org.apache.click.control.ActionLink; import org.apache.click.examples.page.BorderPage; /** * Provides an example Page showing how to perform redirects with Ajax requests. * * Since Ajax does not support redirects we return the url to redirect to in a * custom response url called 'REDIRECT_URL'. The client-side then uses JavaScript * to simulate a redirect by setting the value of window.location to the redirect * url. * */ public class AjaxRedirectPage extends BorderPage { private static final long serialVersionUID = 1L; private ActionLink redirectLink = new ActionLink("redirectLink"); @Override public void onInit() { super.onInit(); redirectLink.setId("redirectLinkId"); addControl(redirectLink); redirectLink.addBehavior(new DefaultAjaxBehavior() { @Override public ActionResult onAction(Control source) { Context context = getContext(); context.setFlashAttribute("flash", "Redirected at " + new Date()); String redirectUrl = context.getPagePath(AjaxRedirectPage.class); String contextPath = context.getRequest().getContextPath(); redirectUrl = contextPath + redirectUrl; context.getResponse().setHeader("REDIRECT_URL",redirectUrl); // We are redirecting so no response is returned return null; } }); } }