Spring
-
[김영한 스프링] 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원 이상 지금까지 만든 웹 애플리케이션은 폼 입력 시 숫자를 문자로 작성하거나해서 검증 오류가 발생하면 오류 화면으로 바로 이동한다. 이렇게 되면 사용자는 처음부터 해당 폼으로 다시 이동해서 입력을 해야 한다. 아마도 이런 서비스라면 사용자는 금방 떠나버릴 것이다. 웹 서비스는 폼 입력 시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한다...
-
[김영한 스프링] 17. 메시지, 국제화 - 웹 애플리케이션에 메시지, 국제화 적용하기Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 28. 23:35
웹 애플리케이션에 메시지 적용하기 messages.properties label.item=상품 label.item.id=상품 ID label.item.itemName=상품명 label.item.price=가격 label.item.quantity=수량 page.items=상품 목록 page.item=상품 상세 page.addItem=상품 등록 page.updateItem=상품 수정 button.save=저장 button.cancel=취소 타임리프 메시지 적용 타임리프의 메시지 표현식 #{...}를 사용하면 스프링의 메시지를 편리하게 조회할 수 있다. 예를 들어서 방금 등록한 상품이라는 이름을 조회하려면 #{label.item}이라고 하면 된다. 렌더링 전 렌더링 후 상품 addForm.html 상품 등록 ..
-
[김영한 스프링] 16. 메시지, 국제화 - 스프링 메시지 소스Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 25. 05:03
스프링 메시지 소스 설정 스프링은 기본적인 메시지 관리 기능을 제공한다. 메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource를 스프링 빈으로 등록하면 되는데, MessageSource는 인터페이스이다. 따라서 구현체인 ResourceBundleMessageSource를 스프링 빈으로 등록하면 된다. 직접 등록 @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages", "errors"); messageSource.setDefaultEncoding("utf-..
-
[김영한 스프링] 15. 메시지, 국제화 - 프로젝트 설정 & 세팅 & 메시지, 국제화 소개Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 8. 25. 03:35
프로젝트 설정 이름 변경 다운로드한 파일 중 "message-start"를 원하는 곳으로 이동 후 "message"로 이름변경 참고 : 메시지, 국제화 예제에 집중하기 위해서 복잡한 체크, 셀렉트 박스 관리 기능은 제거했다. 프로젝트 열기 build.gradle 열기 설정 설정 -> 파일 인코딩 -> 프로퍼티 파일에 대한 디폴트 인코딩을 UTF-8로 변경 설정 -> Gradle -> Intelij IDEA로 변경 실행 결과 메시지, 국제화 소개 메지시 악덕? 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? 여러 화면에 보이는 상품명, 가격, 수량 등, label에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야..