본문 바로가기
728x90
반응형

검증5

[Spring] 복잡한 검증 로직을 별도로 분리하여 Validator 생성하기 컨트롤러에서 검증 로직이 차지하는 부분은 매우 크다. 이런 경우 별도의 클래스로 역할을 분리하는 것이 좋다. 그리고 이렇게 분리한 검증 로직을 재사용 할 수도 있다 Validator를 직접 생성해서 호출해보고, 스프링이 제공하는 Validator를 사용해보자. ItemValidator 생성 package hello.itemservice.web.validation; import hello.itemservice.domain.item.Item; import org.springframework.stereotype.Component; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; .. 2023. 10. 5.
[Spring] BindingResult의 rejectValue(), reject() 를 사용하여 FieldError, ObjectError를 직접 생성하지 않고 검증하기 FieldError, ObjectError를 다루려면 여러 가지 파라미터를 세팅해야하기 때문에 불편한 부분이 많다. 컨트롤러에서 BindingResult는 검증해야할 객체인 target 바로 다음에 온다. 따라서 BindingResult는 이미 본인이 검증해야할 객체인 target을 알고 있다. log.info("objectName={}", bindingResult.getObjectName()); log.info("target={}", bindingResult.getTarget()); 를 실행해보면 와 같이 나오는 걸 볼 수 있다. rejectValue(), reject() BindingResult가 제공하는 rejectValue(), reject()를 사용하면 FieldError, ObjectError.. 2023. 9. 27.
[Spring] erros.properties 를 이용한 오류 코드와 메시지 처리 FieldError 생성자를 살펴보면 아래와 같다. public FieldError(String objectName, String field, String defaultMessage); public FieldError(String objectName, String field, @Nullable Object rejectedValue, boolean bindingFailure, @Nullable String[] codes, @Nullable Object[] arguments, @Nullable String defaultMessage) 파라미터 목록 - objectName : 오류가 발생한 객체 이름 - field : 오류 필드 - rejectedValue : 사용자가 입력한 값(거절된 값) - binding.. 2023. 9. 26.
[Spring] 직접 검증처리 사용자가 상품 등록 폼에서 정상 범위 데이터를 입력하면, 서버에서는 검증 로직이 통과하고, 상품을 저장하고, 상세 화면으로 redirect 한다. 고객이 상품 등록 폼에서 상품명을 입력하지 않거나, 수량, 가격 등이 너무 작거나 커서 검증 범위를 넘어서면, 서버 검증 로직이 실패해야 한다. 이렇게 검증에 실패한 경우 고객에게 다시 상품 등록 폼을 보여주고, 어떤 값을 잘못 입력했는지 친절하게 알려주어야 한다 ValidationItemControllerV1.java 에서 addItem 수정 @PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) .. 2023. 9. 22.
[Spring] 검증(Validation) 오류처리 및 프로젝트 생성 + 프로젝트 명칭 바꾸기 상품 관리 시스템에 새로운 요구사항을 추가해보자. 요구사항: 검증 로직 추가 - 타입 검증 : 가격, 수량에 문자가 들어가면 검증 오류 처리 - 필드 검증 : 상품명: 필수, 공백X : 가격: 1000원 이상, 1백만원 이하 : 수량: 최대 9999 - 특정 필드의 범위를 넘어서는 검증 : 가격 * 수량의 합은 10,000원 이상 지금까지 만든 웹 애플리케이션은 폼 입력시 숫자를 문자로 작성하거나해서 검증 오류가 발생하면 오류 화면으로 바로 이동한다. 이렇게 되면 사용자는 처음부터 해당 폼으로 다시 이동해서 입력을 해야 한다. 아마도 이런 서비스라면 사용자는 금방 떠나버릴 것이다. 웹 서비스는 폼 입력시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한.. 2023. 7. 27.
728x90
반응형