Как перенаправить на другую страницу, сохранив исходный URL?

В моем веб-приложении Wicket 1.5 я хочу перенаправить на другую страницу с закладками, в то время как URL исходной страницы должен остаться.

@MountPath(value="page1")
public class WebPage1 extends WebPage {

    public WebPage1() {
        ...
        if (!isDisplayable()) {
            setResponsePage(WebPage2.class);
            // throw new RestartResponseException(Error404WebPage.class);
            // throw new RestartResponseAtInterceptPageException(Error404WebPage.class);
        }
    }

    private boolean isDisplayable() {
        boolean flag = ...
        ...
        return flag;
    }
}

@MountPath(value="page2")
public class WebPage2 extends WebPage {

    public WebPage2() {
    }

    public WebPage2(PageParameters params) {
    }
}

Ни один из подходов с помощью setResponsePage(..), не генерирует новое RestartResponseException(..) и не генерирует новое RestartResponseAtInterceptPageException(..) не оставляет URL-адрес без изменений. Все три метода перенаправляют на страницу Page2 и изменяют отображаемый URL в адресной строке браузера.

1 ответ

Вы должны поставить RestartResponseException с RedirectPolicy.NEVER_REDIRECT, Т.е.

throw new RestartResponseException(new PageProvider(Error404Page.class), RedirectPolicy.NEVER_REDIRECT);
Другие вопросы по тегам