타임리프 라디오 버튼

2023. 6. 28. 21:11·Spring
728x90
class="form-check-input">
          <label th:for="${#ids.prev('itemType')}" th:text="${type.description}"
  class="form-check-label">
              BOOK
          </label>
      </div>
</div>

라디오 버튼은 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. ENUM 클래스를 활용해서 해보자.

 

- 상품 종류
     도서
, 식품, 기타

라디오 버튼으로 하나만 선택할 수 있다.

@ModelAttribute("itemTypes")
public ItemType[] itemTypes() {
      return ItemType.values();
}

 

ItemType.values() 를 사용하면 해당 ENUM의 모든 정보를 배열로 반환한다. 예) [BOOK, FOOD, ETC]

 <!-- radio button -->
<div>
<div>상품 종류</div>
      <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">
              BOOK
          </label>
      </div>
</div>

체크 박스는 수정시 체크를 해제하면 아무 값도 넘어가지 않기 때문에, 별도의 히든 필드로 이런 문제를 해결했다.

라디오 버튼은 이미 선택이 되어 있다면, 수정시에도 항상 하나를 선택하도록 되어 있으므로 체크 박스와 달리 별도의 히든 필드를 사용할 필요가 없다.

 

타임리프에서 ENUM 직접 사용하기

Model에 ENUM을 담아서 전달하는 대신에 타임리프는 자바 객체에 직접 접근 할 수 있다.

@ModelAttribute("itemType")
public ItemType[] itemTypes(){
		return ItemType.values();
}

타임리프에서 ENUM 직접 접근

<div th:each="type : ${T(hello.itemservice.domain.item.ItemType).values()}>

스프링 EL문법으로 ENUM을 직접 사용할 수 있다. ENUM에 values()를 호출하면 해당 ENUM의 모든 정보가 배열로 반환된다.

 

but, ENUM의 패키지 위치가 변경되거나 할때 자바 컴파일러가 타임리프까지 캄파일 오류를 잡을 수 없으므로 추천하지 않는다.

 

728x90

'Spring' 카테고리의 다른 글

웹 애플리케이션에 메시지+국제화 적용  (0) 2023.07.03
메시지와 국제화  (1) 2023.07.03
타임리프 멀티 체크박스  (0) 2023.06.27
타임리프 활용  (0) 2023.06.26
타임리프 주석사용법  (1) 2023.06.21
'Spring' 카테고리의 다른 글
  • 웹 애플리케이션에 메시지+국제화 적용
  • 메시지와 국제화
  • 타임리프 멀티 체크박스
  • 타임리프 활용
Bello's
Bello's
개발하는 벨로
  • Bello's
    벨로의 개발일지
    Bello's
  • 전체
    오늘
    어제
    • 분류 전체보기 (199) N
      • 노예 일지 (7)
        • 스타트업 노예일지 (3)
      • CS 이론 (81)
        • 학과 수업 (4)
        • 알고리즘 (64)
        • 시스템 프로그래밍 (3)
        • 데이터 통신 (1)
        • 운영체제 (2)
        • 데이터베이스 (1)
      • project (3)
      • 나는 감자다. (4)
      • Spring (27)
      • 모각코 (45)
        • 절개와지조(모각코) (7)
        • 어쩌다보니 박준태가 조장이조 (11)
        • 어쩌다보니 박준태가 또 조장이조 (12)
      • LikeLion🦁 (20)
      • 캘리포니아 감자 (4)
      • OpenSource Contribute (1)
      • 우아한테크벨로 (1) N
        • 프리코스 회고록 (6) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    뛰슈
    자바
    백준
    8기
    절개와지조
    감자
    JPA
    어렵다
    DFS
    모각코
    티스토리챌린지
    그래프 순회
    오블완
    회고록
    나는 감자
    BFS
    타임리프
    누적합
    Spring
    프리코스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Bello's
타임리프 라디오 버튼
상단으로

티스토리툴바