ビューでjavascriptによって消費されるjsonエラーオブジェクトを生成する、このような例外ハンドラーがあります。
@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に指示するにはどうすればよいですか?