将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 注解不使用普通视图解析器,它们使用自己的HttpMessageConverters。为了使用这些注解,您应该在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 的任何请求

Spring Boot 2从入门到入坟 | 请求参数处理篇:REST映射原理的详细分析

Spring Boot 2从入门到入坟 | 请求参数处理篇:REST映射原理的详细分析