본문 바로가기
728x90
반응형

Spring190

[Spring] BindingResult를 이용한 검증처리 직접 검증처리를 했던 이전 게시물(https://drcode-devblog.tistory.com/542) 과는 달리, 스프링은 BindingResult라는 기능을 제공하여 검증시에 편리함을 제공한다. ValidationItemControllerV2 컨트롤러 생성 먼저 ValidationItemControllerV1을 복사하여 ValidationItemControllerV2 를 만든다. hello.itemservice.web.validation.ValidationItemControllerV1 복사 hello.itemservice.web.validation.ValidationItemControllerV2 붙여넣기 템플릿 파일 복사 validation/v1 디렉토리의 모든 템플릿 파일을 validation/v.. 2023. 9. 22.
[Spring] 직접 검증처리 사용자가 상품 등록 폼에서 정상 범위 데이터를 입력하면, 서버에서는 검증 로직이 통과하고, 상품을 저장하고, 상세 화면으로 redirect 한다. 고객이 상품 등록 폼에서 상품명을 입력하지 않거나, 수량, 가격 등이 너무 작거나 커서 검증 범위를 넘어서면, 서버 검증 로직이 실패해야 한다. 이렇게 검증에 실패한 경우 고객에게 다시 상품 등록 폼을 보여주고, 어떤 값을 잘못 입력했는지 친절하게 알려주어야 한다 ValidationItemControllerV1.java 에서 addItem 수정 @PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) .. 2023. 9. 22.
[Spring] 검증(Validation) 오류처리 및 프로젝트 생성 + 프로젝트 명칭 바꾸기 상품 관리 시스템에 새로운 요구사항을 추가해보자. 요구사항: 검증 로직 추가 - 타입 검증 : 가격, 수량에 문자가 들어가면 검증 오류 처리 - 필드 검증 : 상품명: 필수, 공백X : 가격: 1000원 이상, 1백만원 이하 : 수량: 최대 9999 - 특정 필드의 범위를 넘어서는 검증 : 가격 * 수량의 합은 10,000원 이상 지금까지 만든 웹 애플리케이션은 폼 입력시 숫자를 문자로 작성하거나해서 검증 오류가 발생하면 오류 화면으로 바로 이동한다. 이렇게 되면 사용자는 처음부터 해당 폼으로 다시 이동해서 입력을 해야 한다. 아마도 이런 서비스라면 사용자는 금방 떠나버릴 것이다. 웹 서비스는 폼 입력시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한.. 2023. 7. 27.
[Spring] 웹 애플리케이션에 국제화 적용하기 - 타 언어 적용 지원 이번에는 웹 애플리케이션에 국제화를 적용해보자. 먼저 영어 메시지를 추가하자. messages_en.properties label.item=Item label.item.id=Item ID label.item.itemName=Item Name label.item.price=price label.item.quantity=quantity page.items=Item List page.item=Item Detail page.addItem=Item Add page.updateItem=Item Update button.save=Save button.cancel=Cancel 사실 이것으로 국제화 작업은 거의 끝났다. 앞에서 템플릿 파일에는 모두 #{...} 를 통해서 메시지를 사용하도록 적용해두었기 때문이다 웹으로 .. 2023. 6. 28.
[Spring] 웹 애플리케이션에 스프링 메시지 적용하기 실제 웹 애플리케이션에 메시지를 적용해보자. 먼저 메시지를 추가 등록하자. 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} 이라고 하면 된다. 렌더링 전 렌더링.. 2023. 6. 28.
[Trouble Shooting/IntelliJ] properties 파일에 작성한 한글이 자꾸 ??? 표시로 바뀐다면 File > Settings > Editor > File Encodings > Properties File UTF-8 로 설정하고 [Apply] 적용이 완료된 후, 다시 properties에 ?? 표시된 것을 지우고 한글로 다시 작성하여 수정한다. 그리고 https://drcode-devblog.tistory.com/536 [Spring] 스프링 메시지 소스 사용 및 .properties 파일 인코딩 설정 MessageSource 인터페이스 public interface MessageSource { String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale); String getM.. 2023. 6. 28.
728x90
반응형