Spring MVC @RequestPart通过注释进行验证

时间:2018-08-09 09:50:25

标签: spring-mvc multipartform-data hibernate-validator

如何验证正文请求部分不为空?

@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()结果,但无效。缺什么 ?这样可以做到吗?

2 个答案:

答案 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参数必须在经过验证的方法参数之后立即声明。

相关问题