목록BE/Spring (178)
오봉이와 함께하는 개발 블로그
오류 코드와 메시지 처리 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..
검증 요구사항 타입 검증 가격, 수량에 문자가 들어가면 오류 처리 필드 검증 상품명 : 필수, 공백 X 가격 : 1000원 이상, 100만원 이하 수량 : 최대 9999 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 10,000원 이상 검증 오류가 발생하면 오류 화면으로 바로 이동하는 서비스는 사용자가 처음부터 해당 폼으로 다시 이동해서 입력을 해야 한다. 아마 이런 서비스는 사용자가 금방 떠날 것 이기 때문에 검증 오류가 발생하면 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주는 서비스를 만들어야 한다. 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 이런 검증 로직을 잘 개발하는 것이 어쩌면 정상 로직 개발보다 더 어려울 수 있다. 참..