300x250
반응형
예전에 했던건데...
과거 프로젝트에서 무지성으로 복붙했더니 안먹힌다.
result.hasErrors()가 무조건 false로 나옴;;;
알고보니 spring boot 3으로 올리면서 디펜던시가 변경되었다.
javax.validation 에서 spring-boot-starter-validation 으로 바꿔주니 잘됨
// implementation group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
implementation 'org.springframework.boot:spring-boot-starter-validation'
전체 코드
Controller
인풋받는 객체 앞에 @Valid 붙여주고, 검증 결과를 저장할 BindingResult 같이 받아주기
@PostMapping(value = "/signup")
public ResponseEntity signup(@RequestBody @Valid SignUpRequest request, BindingResult result) {
if(result.hasErrors()){
return ResponseEntity.badRequest().body(result.getAllErrors().get(0).getDefaultMessage());
}
//...
}
Dto
각 멤버 위에 어노테이션으로 검증사항 표시
public class SignUpRequest {
@NotEmpty(message = "id를 입력하세요")
private String id;
@Email
@NotEmpty(message = "email을 입력하세요")
private String email;
//...
}
300x250
반응형
'IT > 자바, 스프링' 카테고리의 다른 글
잘 안써서 몰랐지만 유용할(수도 있는) 자바 String 함수 (0) | 2023.07.28 |
---|---|
Spring boot와 xml 없는 mybatis 사용하기 (어노테이션 적용) (0) | 2023.06.16 |
Pattern과 Matcher로 문자열에서 원하는 값 뽑아내기 (0) | 2023.04.22 |
스프링 프로젝트 로그에서 특정 sdk의 로그레벨만 조정하기 (0) | 2023.03.29 |
JPA Hibernate 오류 : could not extract resultset (0) | 2022.12.22 |