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的每个实例都需要有一个param字段,其中填充RequestHeaderspecial_code。

我该如何进行此操作,以便在调用flagDevice方法体时将其完全填充?

提前谢谢。

这不是小事。

已经提供了一个反序列化JSON的HttpMessageConverter,即MappingJackson2HttpMessageConverter。它可以访问请求标头。您可以扩展该类以也使用头进行反序列化(这在一般情况下非常困难,而不是仅用于MobileDeviceData)。

您可以使用SpringAOP,截取方法,检索参数,转换为适当的类型,并自己分配值。

我想要的解决方案是最简单的:在handler方法中自己完成。循环List,并使用相应的设置器为每个MobileDeviceData设置specialCode

另一种选择是专门为需要从头值构造的List<MobileDeviceData>参数定义自己的HandlerMethodArgumentResolver

最新更新