Spring
스프링 MVC 2 - Form 전송 객체 분리 - 개발
스프링 MVC 2 - Form 전송 객체 분리 - 개발
2022.09.09Form 전송 객체 분리 - 개발 ITEM 원상복구 이제 Item의 검증은 사용하지 않으므로 검증 코드를 제거해도 된다. ItemSaveForm - ITEM 저장용 폼 ItemUpdateForm - ITEM 수정용 폼 이제 등록, 수정용 폼 객체를 사용하도록 컨트롤러를 수정하자. ValidationItemControllerV4 기존 코드 제거 : addItem(), addItemV2() 기존 코드 제거 : edit(), editV2() 추가 : addItem(), edit() 폼 객체 바인딩 Item 대신에 ItemSaveForm을 전달 받는다. 그리고 @Validated로 검증도 수행하고, BindingResult로 검증 결과도 받는다. 주의 @ModelAttribute("item")에 item 이름을..
스프링 MVC 2 - Form 전송 객체 분리 - 소개
스프링 MVC 2 - Form 전송 객체 분리 - 소개
2022.09.09Form 전송 객체 분리 - 소개 ValidationItemV4Controller 실무에서는 groups를 잘 사용하지 않는데, 그 이유가 다른 곳에 있다. 바로 등록시 폼에서 전달하는 데이터가 Item 도메인 객체와 딱 맞지 않기 때문이다. 소위 "Hello World" 예제에서는 폼에서 전달하는 데이터와 Item 도메인 객체가 딱 맞는다. 하지만 실무에서는 회원 등록시 회원과 관련된 데이터만 전달받는 것이 아니라, 약관 정보도 추가로 받는 등 Item과 관계없는 수많은 부가 데이터가 넘어온다. 그래서 보통 Item을 직접 전달 받는 것이 아니라, 복잡한 폼의 데이터를 컨트롤러까지 전달할 별도의 객체를 만들어서 전달한다. 예를 들면 ItemSaveForm 이라는 폼을 전달받는 전용 객체를 만들어서 @M..
스프링 MVC 2 - Form 전송 객체 분리 - 프로젝트 준비 V4
스프링 MVC 2 - Form 전송 객체 분리 - 프로젝트 준비 V4
2022.09.09Form 전송 객체 분리 - 프로젝트 준비 V4 앞서 만든 기능을 유지하기 위해, 컨트롤러와 템플릿 파일을 복사하자. ValidationItemControllerV4 컨트롤러 생성 hello.itemservice.web.validation.ValidationItemControllerV3 복사 hello.itemservice.web.validation.ValidationItemControllerV4 붙여넣기 URL 경로 변경: validation/v3/ → validation/v4/ 템플릿 파일 복사 validation/v3 디렉토리의 모든 템플릿 파일을 validation/v4 디렉토리로 복사 /resources/templates/validation/v3/ → /resources/templates/val..
스프링 MVC 2 - Bean Validation - groups
스프링 MVC 2 - Bean Validation - groups
2022.09.08Bean Validation - groups 동일한 모델 객체를 등록할 때와 수정할 때 각각 다르게 검증하는 방법을 알아보자. 방법 2가지 Bean Validation의 groups 기능을 사용한다. Item을 직접 사용하지 않고I ,ItemSaveForm, ItemUpdateForm 같은 폼 전송을 위한 별도의 모델 객체를 만들어서 사용한다. BeanValidation groups 기능 사용 이런 문제를 해결하기 위해 Bean Validation은 groups라는 기능을 제공한다. 예를 들어서 등록시에 검증할 기능과 수정시에 검증할 기능을 각각 그룹으로 나누어 적용할 수 있다. 코드로 확인해보자. groups 적용 저장용 groups 생성 수정용 groups 생성 Item - groups 적용 Vali..
스프링 MVC 2 - Bean Validation - 한계
스프링 MVC 2 - Bean Validation - 한계
2022.09.07Bean Validation - 한계 수정시 검증 요구사항 데이터를 등록할 때와 수정할 때는 요구사항이 다를 수 있다. 등록시 기존 요구사항 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명: 필수, 공백X 가격: 1000원 이상, 1백만원 이하 수량: 최대 9999 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 10,000원 이상 수정시 요구사항 등록시에는 quantity 수량을 최대 9999까지 등록할 수 있지만 수정시에는 수량을 무제한으로 변경할 수 있다. 등록시에는 id에 값이 없어도 되지만, 수정시에는 id 값이 필수이다. 수정 요구사항 적용 수정시에는 Item에서 id값이 필수이고, quantity도 무제한으로 적용할 수 있다. 수정 요구사항을 적용하기 위해 ..
스프링 MVC 2 - Bean Validation - 수정에 적용
스프링 MVC 2 - Bean Validation - 수정에 적용
2022.09.06Bean Validation - 수정에 적용 상품 수정에도 빈 검증(Bean Validation)을 적용해보자. 수정에도 검증 기능을 추가하자 ValidationItemControllerV3 - edit() 변경 edit() : Item 모델 객체에 @Validated를 추가하자. 검증 오류가 발생하면 editForm으로 이동하는 코드 추가 validation/v3/editForm.html 변경 .field-error css 추가 글로벌 오류 메시지 상품명, 가격, 수량 필드에 검증 기능 추가 실행 http://localhost:8080/validation/v3/items