카테고리 없음

th:block 꼼수

별지킴Lee 2023. 12. 6. 15:11


타임리프 특성상 HTML 태그안에 속성으로 기능을 정의하여 사용하는데, 사용하기 애매한 경우에 사용

 

예시가 제일 눈에 보기 좋겠지...??

@Data
public class CodeDto {
    @NotBlank
    private String tbl_nm;      //테이블 명
    @NotBlank
    private String col_nm;      //코드 명
    
    public void searchCode(String tbl_nm, String col_nm){
        this.tbl_nm = tbl_nm;
        this.col_nm = col_nm;
    }
}
@Data
public class CodeVo {
    private String tbl_nm;      //테이블 명
    private String col_nm;      //코드 명
    private String cd_val;      //코드 값
    private String cd_desc;     //코드 설명
}
<select id="getCodeList" parameterType="블라블라.CodeDto" resultType="블라블라.vo.CodeVo">
    SELECT
        tbl_nm
        , col_nm
        , cd_val
        , cd_desc
    FROM code_master
    WHERE tbl_nm = #{tbl_nm}
    AND col_nm = #{col_nm}
    ;
</select>

 

CodeDto codeDto = new CodeDto();
codeDto.searchCode("테이블명", "컬럼명");
List<CodeVo> typCdList = podeService.getCodeList(codeDto);

요로코롬 typ_cd_list를 타임리프에 적용하려고 한다

( searchCode 메소드는 내가 테이블에 맞게 만든것!!! 조심!!! )

<input type="radio" name="typ_cd" th:each="item : ${typ_cd_list}"
       th:value="${item.typ_val}"
       th:text="${item.cd_desc}"
>

 

th:block 을 사용해서

<th:block th:each="item : ${typ_cd_list}">
<input type="radio" name="typ_cd"
       th:value="${item.cd_val}"
       th:id="${'id_'+ item.cd_val}"
<label th:text="${item.cd_desc}" th:for="${'id_'+ item.cd_val}"/>
</th:block>

 

이렇게 바꾸면 value는 건들지 말고 id 와 for 가 매칭이 되서 서버에 데이터 보내기 가능!!!!!!!!!