我有这段代码:
@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:此请求标识的资源只能根据请求“接受”标头()生成特性不可接受的响应
通过使用以下功能,我可以获得预期的json:
@RequestMapping(value = "/teste.json") public void testeJson(Model model, @RequestParam String tipo) { model.addAttribute("data", Variavel.getListVariavelByTipo("H")); }
我做错了什么?
@RequestBody/ @ResponseBody注释不使用常规视图解析器,而是使用自己HttpMessageConverter的。为了使用这些注释,您应该按照参考资料中的AnnotationMethodHandlerAdapter描述在中配置这些转换器(可能需要)。MappingJacksonHttpMessageConverter
@RequestBody
@ResponseBody
HttpMessageConverter
AnnotationMethodHandlerAdapter
MappingJacksonHttpMessageConverter