在 @ResponseStatus 中使用多个值 HttpStatus

par*_*rbi 6 java spring http spring-mvc

@ResponseStatus我在异常中使用 Spring 注释,例如

@ResponseStatus(value=HttpStatus.UNAUTHORIZED)
public class UnauthorizedException extends Exception{
}
Run Code Online (Sandbox Code Playgroud)

问题是我想对许多值抛出相同的错误HttpStatus.SC_SERVICE_UNAVAILABLE,例如 等。

有没有办法在 中使用多个值@ResponseStatus?提前致谢。

Boz*_*zho 4

不可以。您不能有多个 http 状态代码。检查http规范

如果你确实想在不同的场景下设置不同的状态码(但每个响应只能设置一个状态码),那么删除注释,并通过代码添加:

public X method(HttpServletResponse response) {
    if (..) {
         response.setStatus(..);
    } else {
         response.setStatus(..);
    }
}
Run Code Online (Sandbox Code Playgroud)