2012-01-10 2 views
2

Мне нужно ответить кодом ошибки. Когда я использую AbortWithHttpStatusException мой ответ так:Использование реального кода ошибки HTTP в wicket

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 в самом начале. Как заставить калитку вернуть другой http-код?

Я использую калитку 1.4.18

+0

Не 'AbortWithHttpStatusException' принимает параметр' int'? – jbrookover

+0

@jbrookover да, делает. Я установил его в 507, что привело к тому, что часть 'portlet.http-status-code: 507', но это не то, что я хотел достичь. –

+0

Используете ли вы это в контейнере портлета (« portlet.http-status-code 'Атрибут выглядит как частный случай PortletResponse? –

ответ

0

мне нужно тот же подгоняет HTTP Status Code (например, 404 не найдены) в калиткой функциональности тоже (не с портлетом) и 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 проект.

+0

Спасибо за ваш вклад, однако я помню, что проблема была в том, что это был портлет. И вообще, я больше не в этом проекте, поэтому я не могу попробовать. –

Смежные вопросы