有没有办法为使用Spring内容协商功能的Spring MVC控制器配置默认的mime类型,即
ControllerA - 我希望默认的mime类型是JSON,因此http://mycompany.com/myresourceA
将返回JSON,如果我想要XML,我必须添加扩展名http://mycompany.com/myresourceA.xml
ControllerB - 我希望默认的mimetype是XML,因此http://mycompany.com/myresourceB
将返回XML,如果我想要JSON,我必须添加扩展名http://mycompany.com/myresourceB.json
在我的contentNegotiationManagerBean
中,我将默认的mime类型设置为XML,但这是一个全局配置
<property name="defaultContentType" value="application/xml" />
答案 0 :(得分:0)
无法为整个控制器设置mime类型。您可以使用ResponseEntity将其设置为您的操作,作为操作方法的返回类型,然后设置该操作的响应类型。
使用ResposneEntity响应JSON的示例:
@RequestMapping(method=RequestMethod.GET, value="/fooBar")
public ResponseEntity<String> fooBar2() {
String json = "jsonResponse";
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_JSON);
return new ResponseEntity<String>(json, responseHeaders, HttpStatus.CREATED);
}