Input 값이 유효한 전화번호 형식인지 검증하기 위해 @Pattern 어노테이션을 사용했습니다.
정규문법을 이용하여 확인하는 것이고 작성방법은 아래와 같습니다.
DTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Temp {
// 전화번호
@NotNull
@Pattern(regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$", message = "10 ~ 11 자리의 숫자만 입력 가능합니다.")
String telephoneNumber;
}
여기서 핵심은 regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$" 이 부분입니다.
이어서 Controller에서 @Valid 어노테이션과 BindingResult 객체를 통해 예외처리를 어떤 식으로 하는지 간략하게 소개하겠습니다.
Controller
@Slf4j
@RestController
public class TempController {
@Autowired
private TempService tempService;
@ApiOperation(value = "temp")
@PostMapping(value = {"/temp"})
public TempRes temp(@Valid TempReq tempReq, BindingResult bindingResult) {
log.debug("[IN]TempController.java temp ()={}", tempReq.toString());
if (bindingResult.hasErrors()) {
// 예외처리
}
TempRes tempRes = tempService.service(tempReq);
log.debug("[OUT]TempController.java temp ()={}", tempRes.toString());
return tempRes;
}
}
[개발환경] Windows, STS 3.9.11, Java 1.8
반응형
'[DEV] 기록' 카테고리의 다른 글
jQuery 동적으로 form 생성 후 POST 방식으로 전송 (0) | 2020.08.19 |
---|---|
Lombok) 상속받는 부모 클래스 필드도 빌더 패턴을 적용하고 싶을 경우 (2) | 2020.08.07 |
Jenkins ERROR: Labels must follow required specs (0) | 2020.07.20 |
Eclipse, STS 한글 깨짐 방지 설정 (0) | 2020.07.20 |
Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' (0) | 2020.07.20 |