728x90
반응형
타임리프를 사용해서 폼에서 체크박스, 라디오 버튼, 셀렉트 박스를 편리하게 사용하는 방법을 학습해보자.
기존 상품 서비스에 다음 요구사항이 추가되었다.
판매 여부
- 판매 오픈 여부
- 체크 박스로 선택할 수 있다.
등록 지역
- 서울, 부산, 제주
- 체크 박스로 다중 선택할 수 있다.
상품 종류
- 도서, 식품, 기타
- 라디오 버튼으로 하나만 선택할 수 있다.
배송 방식
- 빠른 배송
- 일반 배송
- 느린 배송
- 셀렉트 박스로 하나만 선택할 수 있다.
ItemType - 상품 종류
package hello.itemservice.domain.item;
public enum ItemType {
BOOK("도서"), FOOD("음식"), ETC("기타");
private final String description;
ItemType(String description) {
this.description = description;
}
}
상품 종류는 ENUM 을 사용한다. 설명을 위해 description 필드를 추가했다.
배송 방식 - DeliveryCode
package hello.itemservice.domain.item;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* FAST : 빠른 배송
* NORMAL: 일반 배송
* SLOW: 느린 배송
*
* */
@Data
@AllArgsConstructor
public class DeliveryCode {
private String code;
private String displayName;
}
배송 방식은 DeliveryCode 라는 클래스를 사용한다.
code 는 FAST 같은 시스템에서 전달하는 값이고, displayName 은 빠른 배송 같은 고객에게 보여주는 값이다.
package hello.itemservice.domain.item;
import lombok.Data;
import java.util.List;
@Data
public class Item {
private Long id;
private String itemName;
private Integer price;
private Integer quantity;
private boolean open; // 판매 여부
private List<String> regions; // 등록 지역
private ItemType itemType; // 상품 등록
private String deliveryCode; // 배송 방식
public Item() {
}
public Item(String itemName, Integer price, Integer quantity) {
this.itemName = itemName;
this.price = price;
this.quantity = quantity;
}
}
ENUM , 클래스, String 같은 다양한 상황을 준비했다.
각각의 상황에 어떻게 폼의 데이터를 받을 수 있는지 하나씩 알아보자.
728x90
반응형
'스프링 > 스프링 웹 개발 활용' 카테고리의 다른 글
[Spring] 스프링 타임리프 통합 - 단일 체크박스 처리 hidden 자동 생성 (0) | 2023.06.26 |
---|---|
[Spring] 스프링 타임리프 통합 - 단일 체크박스 처리 (0) | 2023.06.23 |
[Spring] 스프링부트 타임리프 입력 폼 처리 (0) | 2023.06.23 |
[Spring] 타임리프 스프링 통합 (0) | 2023.06.22 |
[Spring] 스프링 타임리프 통합을 위한 프로젝트 설정 (0) | 2023.06.21 |
댓글