@RequestBody 和@Valid 未验证 kotlin 对象中的 empty/blank 字符串字段

@RequestBody and @Valid not validating empty/blank string field in kotlin object

我的请求被解析为 Kotlin 对象,该对象是控制器中的请求主体。目前,如果字段为空 - 将抛出验证异常,这正是我想要的。

但是,我使用的是@NotBlank,这似乎无法验证它针对“”或“”的意图。我错过了什么?

@NotEmpty 也不检查“”。他们似乎都只是检查 null,这只是我正在寻找的一部分。

本质上,我正在寻找不为空的请求、不为空的列表字段、不为空的列表中的内部 BumblebeeEvent 以及要验证其字段的每个事件(例如,不为空,“ " 或 " ").

这是我的控制器:

@Controller
class BumblebeeEventController {

    @PostMapping("/publish")
    fun eventIntake(@RequestBody @Valid payload: BumblebeeEventList) : ResponseEntity<String>{
        return ResponseEntity("Published ${eventList.size} event(s) successfully",HttpStatus.OK)
    }

}

class Event(@NotBlank val localTime: String){}

class BumblebeeEvent(@NotNull val event: Event)

class BumblebeeEventList(@NotNull val events: List<BumblebeeEvent>){}

提前致谢

试试

class Event(@NotBlank val localTime: String){}

class BumblebeeEvent(@NotNull @Valid val event: Event)

class BumblebeeEventList(@NotNull @Valid val events: List<BumblebeeEvent>){}

您必须指明验证也必须在嵌套对象中进行