본문 바로가기
728x90
반응형

thymeleaf32

[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] 웹 애플리케이션에 스프링 메시지 적용하기 실제 웹 애플리케이션에 메시지를 적용해보자. 먼저 메시지를 추가 등록하자. 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.
[Spring] 스프링 메시지, 국제화 개념 메시지 만약 시스템을 재기획 할 때, 하나의 문구를 바꿔야 하는 상황이라면?? 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? 여러 화면에 보이는 상품명, 가격, 수량 등, label 에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야 한다. 지금처럼 화면 수가 적으면 문제가 되지 않지만 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야 한다 - addForm.html , editForm.html , item.html , items.html 왜냐하면 해당 HTML 파일에 메시지가 하드코딩 되어 있기 때문이다. 이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다. 예를 들어서 messages.properties 라는 메시지 관리용 파일을.. 2023. 6. 27.
[Spring] 스프링 타임리프 통합 - 셀렉트 박스 셀렉트 박스는 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. 이번 포스팅에는 셀렉트 박스를 자바 객체를 활용해서 개발해보자 배송 방식 - 빠른 배송 - 일반 배송 - 느린 배송 셀렉트 박스로 하나만 선택할 수 있다. FormItemController - 추가 @ModelAttribute("deliveryCodes") public List deliveryCodes() { List deliveryCodes = new ArrayList(); deliveryCodes.add(new DeliveryCode("FAST", "빠른 배송")); deliveryCodes.add(new DeliveryCode("NORMAL", "일반 배송")); deliveryCodes.add(new DeliveryCode("SL.. 2023. 6. 27.
[Spring] 스프링 타임리프 통합 - 라디오 버튼 라디오 버튼은 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. 이번 포스팅에는 라디오 버튼을 자바 ENUM을 활용해서 개발해보자. - 상품 종류 : 도서, 식품, 기타 : 라디오 버튼으로 하나만 선택할 수 있다. FormItemController - 추가 @ModelAttribute("itemTypes") public ItemType[] itemTypes() { return ItemType.values(); } itemTypes 를 등록 폼, 조회, 수정 폼에서 모두 사용하므로 @ModelAttribute 의 특별한 사용법을 적용하자. ItemType.values() 를 사용하면 해당 ENUM의 모든 정보를 배열로 반환한다. 예) [BOOK, FOOD, ETC] 상품 등록 폼에 기능을 추가해보자. .. 2023. 6. 26.
728x90
반응형