본문 바로가기
728x90
반응형

Bean Validation5

[Spring] Bean Validation Form 전송 객체 분리 Form 전송 객체를 분리하기 위해, 컨트롤러와 템플릿 버전을 V4로 진행한다. https://drcode-devblog.tistory.com/551 [Spring] Bean Validation 스프링 적용 기존에 했던 것을 살리고, 새로운 버전을 적용하기 위하여 컨트롤러를 복사하여 새로운 버전을 만든다. URL 경로 변경: validation/v2/ → validation/v3/ validation/v2 디렉토리의 모든 템플릿 파일을 validati drcode-devblog.tistory.com 위의 포스팅을 참고하여 변경하면 편리하다. Form 전송 객체 분리 실무에서는 groups 를 잘 사용하지 않는데, 그 이유가 다른 곳에 있다. 바로 등록시 폼에서 전달하는 데이터가 Item 도메인 객체와 딱.. 2023. 10. 11.
[Spring] 등록, 수정 시 Bean Validation 중 Conflict가 발생하는 한계와 이를 개선한 groups Bean Validation - 한계 수정에서 검증할 때와 등록 시 요구사항이 다른 경우가 있다. 등록 시에는 타입 검증은 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증은 상품명은 필수이고, 공백은 없어야 하며, 가격은 1,000원 이상, 1,000,000원 이하, 수량은 최대 9,999개 특정 필드의 범위를 넘어서는 검증은 가격 * 수량의 합은 10,000원 이상 이었다면 수정 시에는 등록 시에는 quantity 수량을 최대 9,999개까지 등록할 수 있지만 수정 시에는 수량을 무제한으로 변경할 수 있게끔 수정 등록 시에는 id에 값이 없어도 되지만, 수정 시에는 id값이 필수이게끔 요구사항이 있다고 할 때, Item.java를 아래와 같이 수정할 수 있다. package hello.item.. 2023. 10. 11.
[Spring] 수정화면에 Bean Validation 적용 ValidationItemControllerV3 - edit() 변경 @GetMapping("/{itemId}/edit") public String editForm(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "validation/v3/editForm"; } @PostMapping("/{itemId}/edit") public String edit(@PathVariable Long itemId, @Validated @ModelAttribute Item item, BindingResult bindingResult) { // 특.. 2023. 10. 10.
[Spring] Bean Validation 에러 코드 및 오브젝트 오류 처리 Bean Validation이 기본으로 제공하는 오류 메시지를 좀 더 자세히 변경하고 싶으면 어떻게 하면 될까? Bean Validation을 적용하고 bindingResult 에 등록된 검증 오류 코드를 보면, 오류 코드가 애노테이션 이름으로 등록된다. 마치 typeMismatch 와 유사하다. NotBlank 라는 오류 코드를 기반으로 MessageCodesResolver 를 통해 다양한 메시지 코드가 순서대로 생성된다. @NotBlank - NotBlank.item.itemName - NotBlank.itemName - NotBlank.java.lang.String - NotBlank @Range - Range.item.price - Range.price - Range.java.lang.Intege.. 2023. 10. 10.
[Spring] Bean Validation 스프링 적용 기존에 했던 것을 살리고, 새로운 버전을 적용하기 위하여 컨트롤러를 복사하여 새로운 버전을 만든다. URL 경로 변경: validation/v2/ → validation/v3/ validation/v2 디렉토리의 모든 템플릿 파일을 validation/v3 디렉토리로 복사 /resources/templates/validation/v2/ → /resources/templates/validation/v3/ /resources/templates/validation/v3/ 하위 4개 파일 모두 URL 경로 변경: validation/v2/ → validation/v3/ 파일의 상위 디렉토리를 지정하고, ctrl + shift + R 을 누르면 한꺼번에 변경이 가능하다 ValidationItemController.. 2023. 10. 5.
728x90
반응형