我想收到Map<Timestamp, Integer>
如PathVariable
使用 Spring MVC。这可能吗?
这是我的 Controller :
@ApiOperation(value = "Some Api", produces = MediaType.APPLICATION_JSON_VALUE)
@PostMapping(consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
public ResponseEntity<RestResult> createApi(@RequestPart (value="image", required = false) MultipartFile banner, SomeRequest request){
RestResult result = new RestResult();
return new ResponseEntity<>(result, HttpStatus.CREATED);
}
这是我的要求:
@Getter
@Setter
public class SomeRequest implements Serializable {
@NonNull
private MultiValueMap<Timestamp, Integer> someValue;
}
最佳答案
作为使用 Spring 的 HandlerMethodArgumentResolver
并实现其 supportsParameter()
和 resolveArgument()
方法的方法之一。最后一个接受方法参数和 Web 请求,您可以使用它们来获取任何所需的数据并组合您想要的对象。
参数解析器在 Controller 方法之前调用,并进行所需的参数转换。
更新: 您必须注册解析器才能使其处于 Activity 状态。如果使用spring-boot,只需将其定义为bean即可。
希望能有所帮助。
关于java - 如何使用 Spring MVC 中的 @PathVariable 发送 Map<String, String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083628/