Spring MVC:在@ExceptionHandler中获取内容协商结果

时间:2015-10-14 13:43:56

标签: java spring spring-mvc

我想写一个@ExceptionHandler,因此JSON请求也会在JSON中得到错误响应。对于非JSON请求,我希望servlet容器发送其默认的HTML响应。

为此,我需要进行一些内容协商。 Spring MVC通过注释处理正常请求,但@ExceptionHandler没有这样的注释。

我想知道如何以编程方式调用内容协商代码?

1 个答案:

答案 0 :(得分:0)

显然,内容协商是在调用错误处理程序之后发生的,所以我必须自己完成大部分繁重工作。

使用的方法是ContentNegotiationManager.resolveMediaTypes(),它提供了一个必须经过并做出决定的类型列表。

如何执行此操作的示例可以找到ContentNegotiatingViewResolver.getMediaTypes()

的来源