BackEnd 106

검증 - 개선

지금까지 개발한것은 필드오류가 발생하면 입력값이 남아있지 않고 지워진다.하지만 FieldError부분을 약간만 손봐주면 오류 발생시 입력값을 남아있도록 해줄 수 있다. @PostMapping("/add") public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증 로직 if(!StringUtils.hasText(item.getItemName())){// errors.put("itemName","상품 이름은 필수입니다."); bindingResult...

BackEnd/Spring Boot 2024.07.26

검증 - BindingResult

BindingResult이란 ==> 스프링이 제공하는 검증 오류를 보관하는 객체이다. 앞선 실습에서는 검증 오류를 HashMap에 보관했지만 이번에는 BindingResult를 이용해 보았다.  @PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {// //검증 오류 결과를 보관// Map errors = new HashMap(); //검증 로직 if(!StringUtils.hasText(item.getItemName())){// ..

BackEnd/Spring Boot 2024.07.26

검증(직접 처리)

웹어플리케이션의 검증 기능을 직접 처리 해보는 시간을 가져봤다. 검증 요구사항1) 가격, 수량에 문자가 들어가면 검증 오류 처리 2) 상품명: 필수, 공백X    가격: 1000원 이상, 1백만원 이하    수량: 최대 9999 3) 가격 * 수량의 합은 10,000원 이상  이러한 요구 사항을 만족 시키지 못한다면 어떤 오류가 발생했는지 고객에게 알려주고 다시 '상품 등록 폼'을 띄워서 다시 값을 입력 하도록 한다. @PostMapping("/add")public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { //검증 오류 결과를 보관 Map errors = new H..

BackEnd/Spring Boot 2024.07.25

웹 애플리케이션에 국제화 적용하기

앞선 글에서 작성한 코드에서는 메시지만 적용했고 이번에는 국제화를 적용해 보았다.https://developerwoohyeon.tistory.com/107 웹 애플리케이션에 메시지 적용하기테스트 코드를 통해 메시지 적용을 확인했으니 이제 웹 어플리케이션에 메시지를 적용해보자. label.item=상품label.item.id=상품 IDlabel.item.itemName=상품명label.item.price=가격label.item.quantity=수량page.items=developerwoohyeon.tistory.com  국제화는 messages_en.properties에 영어 메시지를 추가해주면 끝난다. label.item=Itemlabel.item.id=Item IDlabel.item.itemName=I..

BackEnd/Spring Boot 2024.07.24

스프링 메시지 소스 사용

스프링이 메시지와 국제화 기능을 모두 제공한다.  메시지 소스 설정하기spring.messages.basename=messages,config.i18n.messagesMessageSource를 스프링 빈으로 등록하지 않으면 message라는 이름으로 기본 등록된다. 따라서 message_en.properties와 같이 파일만 등록하면 자동인식이 된다.  hello=안녕hello.name=안녕 {0}hello=hellohello.name=hello {0}  package hello.itemservice.message;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org...

BackEnd/Spring Boot 2024.07.24

셀렉트 박스

여러개의 선택지중에 하나를 선택할 수 있도록 하기 위해서 셀렉트 박스를 활용할 수 있다. 상품의 배송방식을 고르는 것을 셀렉트 박스로 구현해보자. package hello.itemservice.domain.item;import lombok.AllArgsConstructor;import lombok.Data;/** * FAST : 빠른배송 * NORMAL : 일반배송 * SLOW : 느린배송 */@Data@AllArgsConstructorpublic class DeliveryCode { private String code; private String displayName;}  @ModelAttribute("deliveryCodes")public List deliveryCodes() { Li..

BackEnd/Thymeleaf 2024.07.23

라디오 버튼

라디오 버튼이란 여러 선택지 중 하나의 선택지를 선택할때 사용한다. (라디오 버튼은 선택을 무조건 하나 해줘야한다.) 라디오 버튼을 이용하여 상품의 종류가 무엇인지를 선택하는 코드를 작성해보자.  package hello.itemservice.domain.item;public enum ItemType { BOOK("도서"), FOOD("음식"), ETC("기타"); private final String description; ItemType(String description) { this.description = description; } public String getDescription() { return description; }}   ite..

BackEnd/Thymeleaf 2024.07.23

체크 박스 - 멀티

체크박스를 멀티로 사용하여 하나 이상을 체크할 수 있도록 하는 방법에 대해서 공부하였다. 우선 FormItemController에서 지역들을 담고있는 Map을 모델에 넘겨주는 작업을 해줘야한다.@ModelAttribute("regions")public Map regions(){ Map regions = new LinkedHashMap(); regions.put("SEOUL","서울"); regions.put("BUSAN","부산"); regions.put("JEJU","제주"); return regions;}@ModelAttribute를 이용하여 해당 컨트롤러를 요청할때 regions에서 반환한 값이 모델에 자동으로 담기도록 해준다.   등록 지역 ..

BackEnd/Thymeleaf 2024.07.23