0

我有一个检票口页面,在提交表单时我重定向到另一个页面。我有这个:

@Override
protected void onSubmit()
{
    //Do something
    response.sendRedirect(previousPageUrl);
}

该页面已正确重定向,但出现此异常:

[org.apache.wicket.protocol.http.WebResponse] [Unable to redirect to:..., HTTP Response has already been committed.]
[org.apache.wicket.protocol.http.WicketFilter] [closing the buffer error]
java.lang.IllegalStateException: Committed
    at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1059) ~[na:na]
    at org.eclipse.jetty.server.Response.sendRedirect(Response.java:449) ~[na:na]
    at org.apache.wicket.protocol.http.WebResponse.sendRedirect(WebResponse.java:299) ~[wicket-1.4.17.jar:1.4.17]
    at org.apache.wicket.protocol.http.WebResponse.redirect(WebResponse.java:250) ~[wicket-1.4.17.jar:1.4.17]
    at org.apache.wicket.protocol.http.BufferedWebResponse.close(BufferedWebResponse.java:67) ~[wicket-1.4.17.jar:1.4.17]

我已经尝试在sendRedirect()通话之前添加此行,但没有帮助:

getRequestCycleSettings().setRenderStrategy(IRequestCycleSettings.ONE_PASS_RENDER);
4

2 回答 2

1

我对您的代码的第一印象是,在您的代码中,您可能已经向对象// do something写入了一些内容。response您可以尝试先评论这些代码以隔离问题或将整个代码粘贴到// do something此处,以便我们可以更好地帮助您。

于 2013-08-02T02:35:18.240 回答
1

您必须中断 Wicket 的请求处理:

 throw new RedirectToUrlException(previousPageUrl);
于 2013-08-02T12:21:43.830 回答