Kotlin @Valid 사용법

0

Kotlin

목록 보기
16/32
  • RequestBody 로 request를 받아올 때, 일반 단일 한 객체를 받아올 때도 있지만, 리스트로 받아오는 경우도 있다.

  • DrugListDto 가 있고, DrugItemDto가 있다.
    DrugListDto 내부에서
    val drugList: List<DrugItemDto>? = null
    로 DrugItemDto을 가지고 있는데, 나는 Controller에서 DrugListDto Valid도 확인하고, 그 내부인 DrugItemDto의 Valid도 확인해야한다.
  • Controller 에서 받아올 때,

    위와 같이 @RequestBody와 @Valid 를 붙여주면, DrugListDto의

    @field:Size(min = 1, max =10) 만 검증할 뿐, 내부 DrugItemDto를 검증해주지 않는다....

->그래서 검색해본 결과, 자바에서 drugList 변수 위에 @Valid 를 붙여주면 된다고 해서 해봤는데 안됨;
또 코틀린에서는 처리방법이 다른가 검색해봤더니. 역시나 달랐다.

여기서도 @field: 를 붙여줘야함...

위와 같이 붙여주면 잘 작동한다.... 흑흑흑


+++ 그 외에도 @NotNull, @NotBlank 를 사용하고 싶다면, 앞에 field:를 꼭 붙여줘야 잘 작동함!!

  • @field:NotBlank
  • 계속 MethodArgumentNotValidException 이 안뜨고 Service에서 NullPointerException이 떠서 왜그런가 했더니, @field: 를 안붙여줘서 그랬던것임.

그 외 위의 이유에 대해 알고 싶다면,

출처

profile
백엔드를 공부하고 있습니다.

0개의 댓글