如何验证正文请求部分不为空?
@PostMapping("/messages")
@ResponseStatus(HttpStatus.CREATED)
fun createMessage(@Valid @RequestPart message: MessageCreate,
@Valid @RequestPart @NotEmpty body: MultipartFile,
@RequestParam attachments: List<MultipartFile>) {
return service.create(message, body, attachments)
}
我试图创建一个自定义验证器批注,该批注会检查body.isEmpty()结果,但无效。缺什么 ?这样可以做到吗?
答案 0 :(得分:0)
在请求正文对象之前添加@NotNull
。
请参阅此以获取更多信息:Null request body not getting caught by Spring @RequestBody @Valid annotations
答案 1 :(得分:0)
@PostMapping("/messages")
@ResponseStatus(HttpStatus.CREATED)
fun createMessage(@Valid @RequestPart message: MessageCreate,
@Valid @RequestPart @NotEmpty body: MultipartFile,
result: BindingResult,
@RequestParam attachments: List<MultipartFile>) {
if (result.hasErrors()) {
//handle validation failure
}
return service.create(message, body, attachments)
}
注意:BindingResult
参数必须在经过验证的方法参数之后立即声明。