주의
이 시리즈는 일주일 조금 넘는 기간 동안 블로그 주인이 밤새 작업하면서 쓰는 글입니다 정확하지 않은 내용이 포함 될 수 있고, 끝내지 못 할 수 있습니다
프론트쪽에서 입력한 폼정보가 백엔드로 넘어 왔을 때, 우리는 특정한 객체에 해당 정보를 담아 받아 볼 수 있습니다
이때 사용하는 객체를 커맨드 객체라 부르고 이번 시리즈에서는 이 커맨드 객체를 validation해보도록 하겠습니다
아래와 같은 작업을 진행하면 쉽게 문제를 해결 할 수 있습니다
1. 커맨드 객체를 제작
2. 해당 커맨드 객체를 validate할 validator 객체를 생성, 스프링 validator를 implements 합니다
이때 오버라이드하는 메소드는 총 2가지 입니다
1. supports 메소드
이미 우리는 바로 전 시리즈인 하이버네이트 타입 커스텀하기에서 이와 비슷한 메소드를 다뤘습니다
@Override
public boolean supports(Class<?> cls) {
return cls.isAssignableFrom(폼클래스의이름.class);
}
isAssinableFrom이랑 instanceOf 이 두가지 메소드가 조금 헷갈릴 수 있는데, 이 링크에서 알아보겠습니다(추가 예정)
이 두가지는 타입을 wrap, unwrap할 때 아주 중요하게 사용됩니다
2. validate
여기서는 파라미터로 validate 하려는 객체와 Errors라는 아주 성가신 스프링 인터페이스 하나를 받고있습니다
validate 로직을 알맞게 생성해 주시고 만약에 invalid하다면 이 Errors라는 객체에 해당 내용을 형식에 맞게 입력해주면 됩니다
참고 문헌
테스트 방법
https://stackoverflow.com/questions/9744988/writing-junit-tests-for-spring-validator-implementation
validation
'개발' 카테고리의 다른 글
validation 구현하기 - 3 (T-001) (0) | 2022.02.22 |
---|---|
isassignablefrom vs instance (T-001) (0) | 2022.02.22 |
하이버네이트 커스텀 벨류 타입 - 3 (0) | 2022.02.20 |
하이버네이트 커스텀 벨류 타입 - 2 (0) | 2022.02.17 |
하이버네이트 커스텀 벨류 타입 - 1 (0) | 2022.02.16 |