그런데 만약 새로운 요구사항이 추가되서 수정은 다른 검증 로직이 필요하다면 어떨까?
이때 해결방법ㅇ은 두가지다.
1. groups
2. Item을 작접 사용하지 않고, ItemSaveForm, ItemUpdateForm같은 폼 전송을 위한 별도의 객체를 만드는 것.
이번에는 group에 대해 알아보자.
먼저 저장용 groups와 수정용 groups 인터페이스를 만든다.
이제 다음과 같이 Item클래스에 적용한다.
요렇게 하면 groups={UpdateCheck.class}를 넣은 곳과 groups={SaveCheck.class} 넣은 곳, groups={UpdateCheck.class, SaveCheck.class}를 넣은 곳으로 분리된다.
예를들어 14라인은 UpdateCheck만 넣어줬으므로, 수정시에만 적용되는 것이다.
물론 여기서 끝이 아니라, 컨트롤러 메소드에 알려줘야한다.
이렇게 바꾸면 따로 잘 작동한다.
@Valid에는 이러한 group을 사용할 수 없다. 그래서 @Validated를 사용했다.
하지만 이 방법은 잘 사용하지 않는다. Item클래스를 보면 상당히 지저분해졌다..
'Spring > spring mvc 심화' 카테고리의 다른 글
뷰 템플릿에 컨버터 적용하기 (0) | 2021.07.18 |
---|---|
컨버젼 서비스 (0) | 2021.07.18 |
타입 컨버터 (0) | 2021.07.17 |
12 Bean Validator3 - 등록용, 수정용 Item분리 (0) | 2021.07.08 |
9 Bean Validator1 (0) | 2021.07.08 |