전체 글
-
[김영한 스프링] 24. 검증1 Validation - 오류 코드와 메시지 처리4, 5, 6Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 9. 1. 23:18
오류 코드와 메시지 처리4 MessageCodesResolverTest test/java/hello/itemservice/validation/MessageCodesResolverTest 생성 messageCodesResolverObject 실행 messageCodesResolverField bindingResult.rejectvalue가 내부에서 codeResolver를 호출함 실행 package hello.itemservice.validation; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.validation.DefaultMessageCodesResolver; im..
-
[김영한 스프링] 23. 검증1 Validation - 오류 코드와 메시지 처리1, 2, 3Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 9. 1. 03:41
오류 코드와 메시지 처리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) 파라미터 목록 objectName : 오류가 발생한 객체 이름 field : 오류 필드 rejectedValue : 사용자가..
-
String, StringBuffer, StringBuilderJava 2023. 8. 31. 22:29
String, StringBuffer, StringBuilder 문자열을 저장하고 관리하는 클래스 String immutable(불변) 한번 생성되면 할당된 메모리 공간이 변하지 않습니다. + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 합니다. (즉, String 클래스 객체는 Heap 메모리 영역(가비지 컬렉션이 동작하는 영역)에 생성. 한번 생성된 객체의 내부 내용을 변화시킬 수 없습니다. 기존 객체가 제거되면 Java의 가비지 컬렉션이 회수합니다.) String 객체는 이러한 ..
-
[김영한 스프링] 22. 검증1 Validation - FieldError, ObjectErrorSpring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 30. 23:53
FieldError, ObjectError 목표 사용자 입력 오류 메시지가 화면에 남도록 하자. 예) 가격을 1000원 미만으로 설정 시 입력한 값이 남아있어야 한다. FieldError, ObjectError에 대해서 더 자세히 알아보자. 에러 발생하면 데이터가 사라짐 ValidationItemControllerV2 - addItemV2 @PostMapping("/add") public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { // 검증 로직 if (!StringUtils.hasText(item.getItemName()..
-
[김영한 스프링] 21. 검증1 Validation - BindingResultSpring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 30. 23:22
BindingResult1 ValidationItemControllerV2 - addItemV1 @PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { // 검증 로직 if (!StringUtils.hasText(item.getItemName())) { bindingResult.addError(new FieldError("item", "itemName", "상품 이름은 필수입니다.")); } if (item.getPrice() == null || item.getPrice() < 1000..
-
[김영한 스프링] 20. 검증1 Validation - 프로젝트 준비 V2Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 29. 04:01
프로젝트 준비 V2 ValidationItemControllerV2 컨트롤러 생성 ValidationItemControllerV1을 ValidationItemControllerV2로 복붙 validation/v1을 validation/v2로 모두 변경 템플릿 파일 복사 v1을 v2로 복붙 v2폴더를 선택하고 Ctrl + Shift + R을 눌러 하위 파일의 validation/v1을 validation/v2로 모두 변경 실행 출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다...
-
[김영한 스프링] 19. 검증1 Validation - 검증 직접 처리Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 29. 03:48
검증 직접 처리 - 소개 상품 저장 성공 사용자가 상품 등록 폼에서 정상 범위의 데이터를 입력하면, 서버에서는 검증 로직이 통과하고, 상품을 저장하고, 상품 상세 화면으로 redirect한다. 상품 저장 검증 실패 고객이 상품 등록 폼에서 상품명을 입력하지 않거나, 가격, 수량 등이 너무 작거나 커서 검증 범위를 넘어서면, 서버 검증 로직이 실패해야 한다. 이렇게 검증에 실패한 경우 고객에게 다시 상품 등록 폼을 보여주고, 어떤 값을 잘못 입력했는지 친절하게 알려주어야 한다. 검증 직접 처리 - 개발 상품 등록 검증 ValidationItemControllerV1 - addItem() 수정 @PostMapping("/add") public String addItem(@ModelAttribute Item ..
-
[김영한 스프링] 18. 검증1 Validation - 검증 요구사항 & 프로젝트 설정 V1 & 세팅Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 29. 02:11
검증 요구사항 상품 관리 시스템에 새로운 요구사항이 추가되었다. 요구사항 : 검증 로직 추가 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명 : 필수, 공백X 가격 : 1000원 이상, 1백만원 이하 수량 : 최대 9999 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 10,000원 이상 지금까지 만든 웹 애플리케이션은 폼 입력 시 숫자를 문자로 작성하거나해서 검증 오류가 발생하면 오류 화면으로 바로 이동한다. 이렇게 되면 사용자는 처음부터 해당 폼으로 다시 이동해서 입력을 해야 한다. 아마도 이런 서비스라면 사용자는 금방 떠나버릴 것이다. 웹 서비스는 폼 입력 시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한다...