我有一个像这样的异常处理程序,它将产生一个 json 错误对象,供视图中的 javascript 使用。
@ControllerAdvice
public class ExceptionHandlerController {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public final JsonResponse<Void> handleJsonException(
final Exception e,
final HttpServletRequest request,
final HttpServletResponse response) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return new ErrorJsonResponse(e);
}
}
我不希望此方法针对常规回发(非 json)请求运行。所以我想让这些类型的异常由 WEB.XML 配置的错误页面处理。
<error-page>
<error-code>500</error-code>
<location>/500</location>
</error-page>
在返回 json 的 @RequestMapping 方法中,我明确设置了生成值。
@RequestMapping(value = "/dosomething",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
我如何告诉 spring 使用基于生产内容类型的特定异常处理程序?