Overview

Thymeleaf에서 TAG SELECT 내 데이터를 사용할때 하드코딩으로 하는 방법도 있지만, 아래 두가지 방법으로 Java Enum Type을 사용할 수 있다.

  1. th:each를 사용
    <select class="form-select" id="dtl-productCd" name="productCd" th:field="${detail.ProductCd}">
     <option th:each="enumValue: ${T(com.example.common.ProductCd).values()}"
             th:value="${enumValue}" 
             th:text="${enumValue.label()}"
     />
    </select>
    

    ${T(com.example.common.ProductCd.values())} 를 th:each로 지정 후 value, text를 위 형태로 사용한다.


  1. Controller @ModelAttribute사용.
    • JAVA
      @ModelAttribute("ProductCd")
      public ProductCd[] productCds() {
       return ProductCd.values();
      }
      


    • HTML
      <select class="form-select" id="dtl-productCd" name="productCd" th:field="${detail.기본값}">
       <option th:each="productCd : ${ProductCd}" 
                   th:value="${productCd}" 
                   th:text="${productCd.label()}"/>
      </select>
      

th:field 를 사용하여 해당 기본값을 세팅해준다.