在wicket中使用真正的HTTP错误代码

时间:2012-01-10 09:53:57

标签: wicket portlet

我需要回复错误代码。当我使用AbortWithHttpStatusException时,我的回答是这样的:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
portlet.http-status-code: 507
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Tue, 10 Jan 2012 09:49:52 GMT

由浏览器(至少是firefox)解释为200 OK,这似乎没问题,因为开头有HTTP/1.1 200 OK。我如何强制wicket返回其他http代码?

我正在使用wicket 1.4.18

1 个答案:

答案 0 :(得分:0)

我在Wicket 功能中也需要相同的自定义HTTP状态代码(例如404 Not Found)(不使用portlet),configureResponse()可以很好地工作:

package org.soluvas.web.bootstrap;

import org.apache.wicket.request.http.WebResponse;

/**
 * @author atang
 *
 */
public class PageNotFound extends BootstrapPage {

    private static final long serialVersionUID = 1L;

    public PageNotFound() {
        super();
//      add(new Page404());
    }

    @Override
    protected void configureResponse(WebResponse response) {
        super.configureResponse(response);
        response.setStatus(404);
    }

}

取自https://github.com/soluvas/soluvas-web项目。