@PostMapping("/save-coupon")
@Operation(summary = "쿠폰 저장", description = "쿠폰목록에서 선택한 쿠폰리스트를 쿠폰함에 저장한다.")
public CommonResult<Object> saveCpnList(@Valid @RequestBody List<SaveCpnListInDto> inDto) {
mVouchService.saveCpnList(inDto);
return CommonResult.ok();
}
}
🤔 오류현상
파라미터를 List로 받았더니 Valid 어노테이션이 동작하지 않는다.
✔ 해결방법
@PostMapping("/save-coupon")
@Operation(summary = "쿠폰 저장", description = "쿠폰목록에서 선택한 쿠폰리스트를 쿠폰함에 저장한다.")
public CommonResult<Object> saveCpnList(@Valid @RequestBody SaveCpnListInDto inDto) {
mVouchService.saveCpnList(inDto);
return CommonResult.ok();
}
}
@Data
public class SaveCpnListInDto {
@Valid
private List<SaveCpnListDto> SaveCpnListDtoList;
}
@Data
public class SaveCpnListDto {
//변수 정의
}
파라미터를 감싸고 있던 List를 거두고 별도의 변수 class를 생성해 파라미터 클래스 내부에
List를 넣어놓고 @Valid를 붙여준다.
💎 해결방법 2
근본적인 해결책이 있었다.
controller 클래스에 @Validated 어노테이션을 붙이면 클래스 단위로 유효성 검증이 가능해서
@Valid를 붙인 List<>단위의 파라미터도 유효성체크를 할 수 있다.
@ResController
@Validated
@RequiredArgsConstructor
public class UserController {
public void addUser(@Valid AddUserRequest addUserRequest) {
...
}
}
출처: https://mangkyu.tistory.com/174 [MangKyu's Diary:티스토리]
@Valid와 @Validatied 의 차이 : https://mangkyu.tistory.com/174 참조
'TIL' 카테고리의 다른 글
어노테이션 커스텀 (0) | 2023.05.18 |
---|---|
@valid 와 @validated 의 차이 , 그리고 JSR-303 VS 스프링 어노테이션 (0) | 2023.05.18 |
Java - HashMap 정렬, 4가지 방법 (0) | 2023.04.10 |
암호화 알고리즘 _ AES알고리즘 (0) | 2023.03.02 |
sts에서 pom.xml 오류가 나는 경우 (0) | 2023.01.13 |