2015-10-14 54 views
0

我想写一个@ExceptionHandler,这样JSON请求也会在JSON中得到错误响应。对于非JSON请求,我希望servlet容器发送其默认的HTML响应。Spring MVC:在@ExceptionHandler中获取内容协商结果

要做到这一点,我需要做一些内容协商。 Spring MVC通过注释处理正常的请求,但没有这样的注释可用于@ExceptionHandler s。

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

+0

源听起来很复杂,但也可能创建自定义过滤器springSecurityFilterChain后添加。然后根据请求内容,您可以修改响应内容。 – NikolaB

+0

在第一段中描述了你想要有一个固定的返回类型(实际上是两个)。但问题是“获取内容协商结果”,可能是JSON或HTML以外的其他内容。你只需要检查'Content-Type'头是'application/json'(或者一个变体)。然后它是一个JSON请求,并返回一个JSON响应。 – zeroflagL

回答