如果将请求发送到我的 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
方法?
编辑:
有一个defaultContentType
字段ContentNegotiationManagerFactoryBean
可以解决问题。