将restful ajax请求映射到spring

时间:2010-05-13 17:39:46

标签: java ajax spring spring-mvc rest

我有这段代码:

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

我做错了什么?

1 个答案:

答案 0 :(得分:13)

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