检票口 6.x 或 7.x 中的 setRedirect(true)

setRedirect(true) in wicket 6.x or 7.x

我有类似这样的代码,那么如何在 wicket 6.x 或 7.x 中编写 1.

catch (Exception e) {
                log.error("**** Exception ***********");
                setRedirect(true);
                log.errorException(e);
                showErrorMsg(getLocalizer().getString("request.process.page.error", this));
            }

2.

if (admin != null && admin.getId().equalsIgnoreCase(aId) == false) {

                    log.error("UserId do not match");
                    setRedirect(true);
                    showErrorMsg(getLocalizer().getString("internal.user.gccverf.auth.failed", this));

                }

我有这样的方法

private void showErrorMsg(String errorMsg) {
            setResponsePage(new ErrorPage(this.getPage(), getLocalizer().getString("label.applicaiton.error.page", this), errorMsg));
        }

只需删除 setRedirect(true);.

另一种方法是将其替换为:setResponsePage(getPage().getPageClass(), getPage().getPageParameters())。这将告诉 Wicket 创建当前页面 class 的新实例并呈现它。在这种情况下,showErrorMsg() 使用 Session#error() 很重要,否则错误将不会出现在下一页。