【发布时间】:2016-12-20 17:43:39
【问题描述】:
我正在尝试让 Spring 使用 @RequestBody 注释将请求正文映射到 POJO。
我收到一个错误
“所需的请求正文内容缺失:org.springframework.web.method.HandlerMethod$HandlerMethodParameter@4c3bfe22
因为我之前已经根据来自拦截器的请求调用了 getInputStream 进行验证。
我已经扩展了 HttpServletRequestWrapper 并重写了 getInputStream 方法以返回一个 ServletInputStream,它从在原始读取时创建的字符串缓存中获取数据。
调试时,我可以在拦截器中多次调用 getInputStream,但 Spring 仍然无法映射 POJO。当我注释掉原来在inteceptor中读入body的那行代码,Spring就可以很好的映射POJO了。
我不太清楚 Spring 如何将数据映射到 POJO,我错过了什么吗?
谢谢
【问题讨论】:
-
显示您的代码!听起来好像缺少一些代码语句。
-
您是在过滤器中还是在拦截器中使用 HttpServletRequestWrapper 进行装饰?
-
@KlausGroenbaek 谢谢,我是在拦截器中执行此操作的,但在您发表评论后,我检查并意识到我需要在过滤器中执行此操作。
标签: spring spring-mvc