Картирование успокоительных запросов Ajax к весне
У меня есть этот кусок кода:
@RequestMapping(value = "/test.json", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody Object[] generateFile(@RequestParam String tipo) {
Object[] variaveis = Variavel.getListVariavelByTipo(tipo);
return variaveis;
}
Насколько я знаю, он должен взять запрос test.json? Tipo=H и вернуть JSON-представление Variavel[], однако, когда я делаю такой запрос, я получаю:
HTTP-статус 406 -
Тип Статус отчета
сообщение
описание Ресурс, идентифицированный этим запросом, способен генерировать ответы только с характеристиками, не приемлемыми в соответствии с заголовком запроса "принять" ()
Используя следующую функцию, я могу получить ожидаемый JSON:
@RequestMapping(value = "/teste.json")
public void testeJson(Model model, @RequestParam String tipo) {
model.addAttribute("data", Variavel.getListVariavelByTipo("H"));
}
Что я делаю не так?
1 ответ
@RequestBody
/@ResponseBody
аннотации не используют обычные средства разрешения, они используют свои собственные HttpMessageConverter
s. Чтобы использовать эти аннотации, вы должны настроить эти конвертеры в AnnotationMethodHandlerAdapter
, как описано в ссылке (вам, вероятно, нужно MappingJacksonHttpMessageConverter
).