목록BE (354)
오봉이와 함께하는 개발 블로그
오류 코드와 메시지 처리 3 오류 코드를 만들 때 다음과 같이 자세히 만들 수 있다. required.item.itemName : 상품 이름은 필수 입니다. range.item.price : 상품의 가격 범위 오류 입니다. 또는 다음과 같이 단순하게 만들 수도 있다. required : 필수 값 입니다. range : 범위 오류 입니다. 단순하게 만들면 범용성이 좋아 여러 곳에서 사용할 수 있지만, 메시지를 세밀하게 작성하기 어렵다. 반대로 너무 자세하게 만들면 범용성이 떨어지는 문제가 있다. 가장 좋은 방법은 범용성으로 사용하다가, 세밀하게 작성해야 하는 경우 세밀한 내용이 적용되도록 메시지에 단계를 두는 방법이다. 예를 들어 required라고 오류 코드를 사용한다고 가정할 때 required라는 메..
오류 코드와 메시지 처리 1 FieldError 생성자 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) 파라미터 목록 ObjcetName : 오류가 발생한 객체 이름 field : 오류 필드 rejectedValue : 사용자..
FieldError, ObjectError 사용자 입력 오류 메시지가 화면에 남도록 하자. 예 : 가격을 1000원 미만으로 설정시 입력한 값이 남아있어야 한다. ValidationItemControllerV2 - addItemV2 @PostMapping("/add") public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { // 검증 오류 결과 보관 Map errors = new HashMap(); // 검증 로직 if(!StringUtils.hasText(item.getItemName())) { bindingResult...
BindingResult 1 스프링이 제공하는 검증 오류 처리 방법을 알아보자. 여기서 핵심은 BindingResult이다. 우선 코드로 확인해보자. ValidationItemControllerV2 - addItemV1 @PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { // 검증 오류 결과 보관 Map errors = new HashMap(); // 검증 로직 if(!StringUtils.hasText(item.getItemName())) { bindingResult.addErro..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cBFwqx/btrJ2nKGzZj/X3Yozc2cSkHeTOigSknXx0/img.png)
검증 직접 처리 - 소개 성공 사용자가 상품 등록 폼에서 정상적인 범위의 데이터를 입력하면, 서버에서는 검증 로직이 통과하고, 상품을 저장 후 상품 상세 화면으로 redirect 한다. 실패 고객이 검증 범위를 넘어서면 서버 검증 로직이 실패해야 한다. 이렇게 검증이 실패한 경우 고객에게 다시 상품 등록 폼을 보여주고, 고객이 입력헀던 값을 다시 model에 담아 전달해서 값을 다시 입력해놔야 한다. 어떤 값을 잘못 입력했는지 알려주어야 한다. 검증 직접 처리 - 개발 상품 등록 검증 코드를 개발하자. ValidationItemControllerV1 - addItem() 수정 @PostMapping("/add") public String addItem(@ModelAttribute Item item, Re..