Annotation Type ResponseStatus


  • @Target({TYPE,METHOD})
    @Retention(RUNTIME)
    @Documented
    public @interface ResponseStatus
    Marks a method or exception class with the status code() and reason() that should be returned.

    The status code is applied to the HTTP response when the handler method is invoked and overrides status information set by other means, like ResponseEntity or "redirect:".

    Warning: when using this annotation on an exception class, or when setting the reason attribute of this annotation, the HttpServletResponse.sendError method will be used.

    With HttpServletResponse.sendError, the response is considered complete and should not be written to any further. Furthermore, the Servlet container will typically write an HTML error page therefore making the use of a reason unsuitable for REST APIs. For such cases it is preferable to use a ResponseEntity as a return type and avoid the use of @ResponseStatus altogether.

    Note that a controller class may also be annotated with @ResponseStatus and is then inherited by all @RequestMapping methods.

    Since:
    3.0
    Author:
    Arjen Poutsma, Sam Brannen
    See Also:
    ResponseStatusExceptionResolver, HttpServletResponse.sendError(int, String)