Jeśli żądanie jest wysyłane do mojego interfejsu API bez nagłówka Accept, chcę ustawić JSON jako domyślny format. Mam dwie metody w moim kontrolera, po jednym dla XML i jeden dla JSON:Jak ustawić domyślny typ zawartości w Spring MVC w nagłówku Accept Accept?
@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.
}
Kiedy wysłać żądanie bez nagłówka Accept metoda getXmlData
nazywa, co nie jest to, co chcę. Czy istnieje sposób, aby powiedzieć Spring MVC, aby zadzwonić do metody getJsonData
, jeśli nie podano nagłówka Accept?
EDIT:
Jest defaultContentType
pola w ContentNegotiationManagerFactoryBean
że załatwia sprawę.
Jeśli znalazłem rozwiązanie przy użyciu 'ContentNegotiationManagerFactoryBean' dodaj go jako rozwiązanie. –