我有这段代码:
@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的请求并返回Variavel []的JSON表示,但是当我提出这样的请求时,我得到:
HTTP状态406 -
输入状态报告
消息
description此请求标识的资源只能根据请求“accept”标题生成具有不可接受特征的响应()
通过使用以下函数,我可以得到预期的json:
@RequestMapping(value = "/teste.json")
public void testeJson(Model model, @RequestParam String tipo) {
model.addAttribute("data", Variavel.getListVariavelByTipo("H"));
}
我做错了什么?
答案 0 :(得分:13)
@RequestBody
/ @ResponseBody
注释不使用普通视图解析器,它们使用自己的HttpMessageConverter
。要使用这些注释,您应该在AnnotationMethodHandlerAdapter
中配置这些转换器,如the reference中所述(您可能需要MappingJacksonHttpMessageConverter
)。