강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

dktmvktm님의 프로필 이미지
dktmvktm

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

Bean Validation - 수정에 적용

수정하면 검증 로직이 작동을 안해요

작성

·

355

0

상품 등록시에는 널일 경우 널 에러가 발생하는데 상품 수정시에는 널이어도 에러가 발생하지 않습니다

 

도메인에  bean validation 설정 컨트롤러 함수에 @Validated 설정 한뒤

 

수정폼에서 상품 이름 null 로 해도 그대로 업데이트가 됩니다

 

이유가 무엇일까요?

 

github:

https://github.com/hyunsokstar/study-spring-mvc

https://github.com/hyunsokstar/study-spring-mvc/blob/main/validation3-start/src/main/java/hello/itemservice/web/validation/ValidationItemControllerV3.java

 

그리고 jpa 강의에서는 빈에 검증로직 안하는게 맞다고 하시지 않았나요? jpa 쓸때도 빈에 검증 로직 등록해도 상관 없나요?

 

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. dktmvktm님

@Validated 위치가 잘못되었습니다. 다음을 참고해서 수정해주세요.

[기존 코드]

@PostMapping("/{itemId}/edit")
public String edit(@Validated @PathVariable Long itemId, @ModelAttribute Item item, BindingResult bindingResult, Model mode) {

 

[변경 코드]

@PostMapping("/{itemId}/edit")
public String edit(@PathVariable Long itemId, @Validated @ModelAttribute Item item, BindingResult bindingResult, Model mode) {

 

Q: jpa 강의에서는 빈에 검증로직 안하는게 맞다고 하시지 않았나요? jpa 쓸때도 빈에 검증 로직 등록해도 상관 없나요?

-> 이 경우 강의 예제여서 단순화 한 것이고, 실제로는 폼 데이터를 통해서 검증하고, 엔티티에는 이런 검증 로직을 빼는 것이 좋습니다. 강의에서 이후에 이 부분도 설명드립니다^^

추가로 강의 소스코드는 git을 private으로 사용해주세요^^

감사합니다.

dktmvktm님의 프로필 이미지
dktmvktm

작성한 질문수

질문하기