是:
@ExceptionHandler(UnknownIdentifierException.class)
public String handleUnknownIdentifierException(final UnknownIdentifierException e, final HttpServletRequest request, final HttpServletResponse response)
{ response.setStatus(404);
request.setAttribute("message", e.getMessage());
return "forward:notfoundpage";
}
另一種方式是標記有特殊標註的例外:
@ResponseStatus(value=HttpStatus.NOT_FOUND, reason="No such Order") // 404
public class UnknownIdentifierException extends RuntimeException {
// ...
}
還有一個方法是在處理程序本身指定註釋錯誤代碼:
@ResponseStatus(value=HttpStatus.NOT_FOUND, reason="Data integrity violation")
@ExceptionHandler(UnknownIdentifierException.class)
public String handleUnknownIdentifierException(final UnknownIdentifierException e, final HttpServletRequest request)
{
///
這裏是長博客文章的主題:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
謝謝。但是,下一行不會重定向覆蓋我們剛剛設置的404? – hop 2015-04-02 19:39:33
如果它將重定向 - 是的,但這裏是轉發http://stackoverflow.com/questions/18671463/why-do-we-use-redirect-in-spring-mvc – 2015-04-02 19:44:35
對不起亞歷克斯。我的意思是前進。所以當我們使用forward時,它不會改變HTTP代碼,它仍然會保持404? – hop 2015-04-02 21:22:45