我们需要在所有端点中同时支持 html 和 json 响应。
html 将由我们自己的前端应用程序使用,而 json 将由第三方 API 集成使用。
我们已经使用 ContentNegotiatingViewResolver 分别将 JstlView 和 MappingJackson2JsonView 用于 html 和 json 内容,并且效果很好。使用单个控制器方法,我们得到基于 url 扩展名的 html/json 输出。
我们希望通过@ControllerAdvice / @ExceptionHandler 为全局 ExceptionHandler 提供类似的技术。但这似乎没有考虑到内容类型,然后才解析为视图。
如何使 ExceptionHandler 选择正确的视图以基于 url.extension 生成 html 或 json ?(注意:我不想使用 @ResponseBody 或 ResponseEntity,因为我需要 ModelAndView 来输出基于 html 的错误页面)
我可以创建一个自定义视图解析器来为 ExceptionHandling 执行此操作吗?如何在 Spring 配置中将它与用于正常响应的 ContentNegotiationViewResolver 一起缝合?