我有这段代码:
@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")); }
我做错了什么?
@RequestBody/ @ResponseBody注释不使用常规视图解析器,而是使用自己HttpMessageConverter的。为了使用这些注释,您应该按照参考资料中的AnnotationMethodHandlerAdapter描述在中配置这些转换器(可能需要)。MappingJacksonHttpMessageConverter
@RequestBody
@ResponseBody
HttpMessageConverter
AnnotationMethodHandlerAdapter
MappingJacksonHttpMessageConverter