[英]Override HttpMessageConverter for Spring RequestBody
我有以下代码:
@RequestMapping(value="/mobile/device", method = RequestMethod.PUT)
public ResponseEntity<Void> flagDevice (@RequestBody List<MobileDeviceData> devicedataList, @RequestHeader(value="special_code") String specialCode) {
// Implementation details
}
创建的MobileDeviceData的每个实例都需要有一个用RequestHeader special_code填充的param字段。
我将如何去做,以便在flagDevice方法主体被调用时将其完全填充?
提前致谢。
这是不平凡的。
一个HttpMessageConverter
已经提供反序列化JSON,这就是MappingJackson2HttpMessageConverter
。 它有权访问请求标头。 您可以扩展该类,使其还使用标头进行反序列化(这相对于MobileDeviceData
,通常很难做到)。
您可以使用Spring AOP,拦截方法, 检索参数 ,转换为适当的类型并自行分配值。
我想要的解决方案是最简单的:自己在handler方法中完成。 循环List
并使用相应的setter为每个MobileDeviceData
设置specialCode
。
另一种选择是专门针对需要从标头值构造的List<MobileDeviceData>
参数定义自己的HandlerMethodArgumentResolver
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.