在读取器

时间:2016-12-20 17:43:40

标签: spring spring-mvc

我正在尝试让Spring使用@RequestBody注释将请求主体映射到POJO。

我收到错误

  

“缺少必需的请求正文内容:org.springframework.web.method.HandlerMethod$HandlerMethodParameter@4c3bfe22

因为我之前已经通过拦截器请求getInputStream进行验证。

我扩展了HttpServletRequestWrapper并重写了getInputStream方法,以返回一个ServletInputStream,它从原始读取时创建的String缓存中获取数据。

调试时,我可以在拦截器中多次调用getInputStream但是Spring仍然无法映射POJO。当我注释掉最初在inteceptor中读取主体的代码行时,Spring可以将POJO映射得很好。

我不太清楚Spring如何将数据映射到POJO,我错过了什么吗?

由于

1 个答案:

答案 0 :(得分:0)

我在Klaus'之后解决了这个问题。关于过滤器与拦截器的评论。

对于其他发现此问题的人,您只能从过滤器而不是拦截器执行此操作。