如何更改Spring默认mvc错误错误代码400"客户端发送的请求在语法上是不正确的"

时间:2016-11-23 10:35:42

标签: java spring spring-mvc exception http-response-codes

Java Spring MVC

当向控制器端点发送无效请求(例如,损坏的JSON)时,响应为:

HTTP状态400:"客户端发送的请求在语法上不正确" 这是在没有实际进入控制器动作的情况下返回的。

由于我的端点是为第三方开放的,我想覆盖这个错误代码(只有这种错误 - 不是来自端点的所有错误代码)并修改它。

覆盖邮件是可选的,但这是一个很好的补充。

**解释重复标记:我知道在请求进入控制器操作后如何设置错误代码,我所描述的问题是请求没有进入操作方法,因为语法不正确。< / p>

2 个答案:

答案 0 :(得分:0)

我认为这种错误信息是MethodArgumentNotValidException.class。 您可以使用控制器顾问并更改返回的错误代码:

@ControllerAdvice
public class MyErrorHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    @ResponseStatus(HttpStatus.OK /*or your optional error code */ )
    @ResponseBody
    public JPresent myHandler(MethodArgumentNotValidException ex) {
  //   handle error
}

答案 1 :(得分:0)

在web.xml文件中添加此代码

<error-page>
     <error-code>400</error-code>
     <location>/WEB-INF/views/errorPages/page-error-400.jsp</location>
</error-page>

您可以对要处理的其余错误代码执行相同的操作