将restful ajax请求映射到spring
Posted
技术标签:
【中文标题】将restful ajax请求映射到spring【英文标题】:Mapping restful ajax requests to spring 【发布时间】:2011-02-19 05:09:05 【问题描述】:我有这段代码:
@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 -
输入状态报告
消息
说明该请求所标识的资源只能根据请求的“accept” headers()生成具有不可接受的特征的响应
通过使用以下函数,我可以获得预期的 json:
@RequestMapping(value = "/teste.json")
public void testeJson(Model model, @RequestParam String tipo)
model.addAttribute("data", Variavel.getListVariavelByTipo("H"));
我做错了什么?
【问题讨论】:
Spring JSON request getting 406 (not Acceptable) 更全面地介绍了这个主题 【参考方案1】:@RequestBody
/@ResponseBody
注解不使用普通视图解析器,它们使用自己的HttpMessageConverter
s。为了使用这些注解,您应该在AnnotationMethodHandlerAdapter
中配置这些转换器,如the reference 中所述(您可能需要MappingJacksonHttpMessageConverter
)。
【讨论】:
嗯,在什么情况下我应该考虑这种方法?以上是关于将restful ajax请求映射到spring的主要内容,如果未能解决你的问题,请参考以下文章
使用 Rest Template 交换方法将 Json 映射到 POJO 类
PayPal REST API 创建协议:传入 JSON 请求未映射到 API 请求
通过 PHP SDK 的 PayPal REST API 返回“传入的 JSON 请求未映射到 API 请求”
没有收到从 jQuery ajax 到 JAVA RESTful webservice 的任何请求