반응형
타임리프 라디오 박스
타임리프를 활용해서 라디오 박스를 만들어 본다.
라디오 박스는 체크 박스와 다르게 여러개 중 하나만 선택할 수 있다.
이번에는 ENUM을 활용해서 개발을 진행했다.
@ModelAttribute("itemTypes")
public ItemType[] itemTypes() {
return ItemType.values();
}
@ModelAttribute로 만들어 주었다. 등록, 조회, 수정 모두 다 사용하므로 이렇게 만드는 게 중복을 줄이는 방법이다.
return 형식이 조금 다른데 저렇게 사용하면 ENUM의 모든 정보를 배열로 반환하게 된다.
<div th:each="type : ${itemTypes}" class="form-check form-check-inline">
<input type="radio" th:field="*{itemType}" th:value="${type.name()}" class="form-check-input">
<label th:for="${#ids.prev('itemType')}" th:text="${type.description}" class="form-check-label">
핵심 코드이다. 체크 박스와 비슷하지만 차이점으로는 항상 하나만 선택이 가능하기 때문에 따로 히든 필드를 사용하지 않아도 된다.
타임리프에서 ENUM을 사용하는 방법이 여러개였다.
위에서 ModelAttribute를 사용해 모델에 ENUM을 담아 전달하는 방식과 자바 객체에 직접 접근하는 방식이다.
<div th:each="type : ${T(hello.itemservice.domain.item.ItemType).values()}">
위 코드와 같이 사용해 SpringEL 문법으로 직접 접근이 가능하다.
하지만 이렇게 사용하면 ENUM의 위치가 바뀌면 오류가 생길 수 있어서 추천하지 않는다고 한다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 타임리프 Message(메시지), 국제화 (0) | 2022.02.09 |
---|---|
[Spring Boot] : 타임리프 셀렉트 박스 (0) | 2022.02.08 |
[Spring Boot] : 타임리프 체크 박스 여러개 만들고 체크하기 (0) | 2022.02.08 |
[Spring Boot] : 타임리프 체크 박스 단일(2) (0) | 2022.02.08 |
[Spring Boot] : 타임리프 체크 박스 단일(1) (0) | 2022.02.08 |
댓글