【问题标题】:@RequestBody and @Valid not validating empty/blank string field in kotlin object@RequestBody 和 @Valid 不验证 kotlin 对象中的空/空白字符串字段
【发布时间】:2021-04-27 11:51:07
【问题描述】:

我的请求被解析为 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>){}

提前致谢

【问题讨论】:

    标签: spring validation kotlin controller request


    【解决方案1】:

    试试

    class Event(@NotBlank val localTime: String){}
    
    class BumblebeeEvent(@NotNull @Valid val event: Event)
    
    class BumblebeeEventList(@NotNull @Valid val events: List<BumblebeeEvent>){}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      相关资源
      最近更新 更多