본문 바로가기
Spring/spring mvc 심화

11 Bean Validator3 - groups

by 킹차니 2021. 7. 8.

그런데 만약 새로운 요구사항이 추가되서 수정은 다른 검증 로직이 필요하다면 어떨까?

이때 해결방법ㅇ은 두가지다.

1. groups

2. Item을 작접 사용하지 않고, ItemSaveForm, ItemUpdateForm같은 폼 전송을 위한 별도의 객체를 만드는 것.

 

이번에는 group에 대해 알아보자.

 

 

 

먼저 저장용 groups와 수정용 groups 인터페이스를 만든다.

저장용
수정용

이제 다음과 같이 Item클래스에 적용한다.

요렇게 하면 groups={UpdateCheck.class}를 넣은 곳과 groups={SaveCheck.class} 넣은 곳, groups={UpdateCheck.class, SaveCheck.class}를 넣은 곳으로 분리된다.

예를들어 14라인은 UpdateCheck만 넣어줬으므로, 수정시에만 적용되는 것이다.

 

물론 여기서 끝이 아니라, 컨트롤러 메소드에 알려줘야한다.

저장하는 addItem메소드
수정하는 edit메소드

이렇게 바꾸면 따로 잘 작동한다.

@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