问题 将restful ajax请求映射到spring


我有这段代码:

@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"));
}

我做错了什么?


4611
2018-05-13 17:39


起源

这个主题更全面地介绍了 Spring JSON请求获得406(不可接受) - kdgregory


答案:


@RequestBody/@ResponseBody 注释不使用普通视图解析器,它们使用自己的 HttpMessageConverter秒。要使用这些注释,您应该在中配置这些转换器 AnnotationMethodHandlerAdapter,如中所述 参考资料 (你可能需要 MappingJacksonHttpMessageConverter)。


12
2018-05-13 18:09



嗯,在哪种情况下我应该考虑这种方法? - Diones