【发布时间】:2013-08-13 21:32:37
【问题描述】:
如果发送到我的 API 的请求没有 Accept 标头,我想将 JSON 设为默认格式。我的控制器中有两种方法,一种用于 XML,一种用于 JSON:
@RequestMapping(method = RequestMethod.GET,produces=MediaType.APPLICATION_ATOM_XML_VALUE)
@ResponseBody
public ResponseEntity<SearchResultResource> getXmlData(final HttpServletRequest request) {
//get data, set XML content type in header.
}
@RequestMapping(method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<Feed> getJsonData(final HttpServletRequest request){
//get data, set JSON content type in header.
}
当我发送没有 Accept 标头的请求时,会调用 getXmlData 方法,这不是我想要的。如果没有提供 Accept 标头,有没有办法告诉 Spring MVC 调用 getJsonData 方法?
编辑:
ContentNegotiationManagerFactoryBean 中有一个 defaultContentType 字段可以解决问题。
【问题讨论】:
-
如果您使用
ContentNegotiationManagerFactoryBean找到了解决方案,请将其添加为解决方案。
标签: http rest spring-mvc content-negotiation