[英]How can I hook into Spring's @RequestBody argument resolving to resolve my own argument using the body of the request
[英]How can I control Spring RequestBody converting JSON request body to object?
Spring @RequestBody注释会自动将JSON请求主体转换为Object。 转换过程对我们来说似乎是一个黑匣子。 但是,我需要控制转换过程以使预期的无效输入失败。
看下面的代码。 JSON请求正文包含带有大写字母的“ id”字符串。 当Spring自动将其转换为UUID对象时,它将成功。
// the controller
public class IndexController {
...
public ResponseEntity<Void> postIndexes(@ApiParam(value = INDEXES_DESC, required = true) @Valid @RequestBody @Size(min = 1, max = 2000) List<Index> indexes) {
...
}
...
}
// the Index class
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Index implements Serializable {
@ApiModelProperty(value = ID_DESC, example = SINGLE_ID)
@NotNull
private UUID id;
...
}
// the input JSON request body
[
{
...
"id": "40336c2b-591a-4472-a270-111111A46339",
...
}
]
但是,我希望这种大写字母输入失败。 不确定@RequestBody注释是做什么的。 看起来它使用UUID.fromString()将String输入转换为UUID对象。 但是我想对转换过程进行一些控制以使其失败。
您也可以检查属性编辑器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.