타임리프를 이용해서 form에서 라디오버튼, 체크박스, 셀렉트 박스등을 편리하게 사용하는 법을 배워보자…
이런 예시 이미지를 만들거임…
먼저 상품 종류에 해당하는 enum클래스를 만들어주자.
package hello.itemservice.domain.item;
public enum ItemType {
BOOK("도서"), FOOD("음식"), ETC("기타");
private final String description;
ItemType(String description) {
this.description = description;
}
}
그리고 배송과 관련된, 데이터형식을 하나 만들어주자(DTO)
/*
* FAST: 빠른 배송
* NORMAL: 일반 배송
* SLOW: 느린 배송
* */
@Data
@AllArgsConstructor
public class DeliveryCode {
private String code;
private String displayName;
}
위에서 필드 code
는 내부에서 사용할 말 그대로 코드, 그리고 displayName
은 고객이 선택하게 되는 “빠른 배송” 등의 이름을 말한다.
그리고 Item도메인을 수정해주자.
판매 여부 필드와 등록 지역, 상품 종류,배송 종류 필드 줘야 한다.
@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;
근데 여기서 잘 이해가 안되는건… deliveryCode를 String타입으로 선언한다는 것임.
기껏 deliveryCode 클래스 만들고 왜 String으로 code를 사용하는 걸까..?
쉬워보이는데 함정이 있다고 함…