인프런 커뮤니티 질문&답변

기팝님의 프로필 이미지
기팝

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

체크 박스 - 멀티

th:field

작성

·

655

5

안녕하세요

등록지역 코드에 대해 질문하나 하겠습니다.

        <div>

            <div>등록 지역</div>

            <div th:each="region : ${regions}" class="form-check form-check-inline">

                <input type="checkbox" th:field="${item.regions}" th:value="${region.key}"

                       class="form-check-input">

                <label th:for="${#ids.prev('regions')}"

                       th:text="${region.value}" class="form-check-label">서울</label>

            </div>

        </div>

=============================================

이 코드에서 

th:field="${item.regions}"  

이 속성은 id,name,value 를 세팅을 해주는데

이 등록 지역 코드는 value를 별도로 또 지정해주셨더라구요

이 의미는 id,name 은 th:field="${item.regions}"   이걸로 세팅을 하고

value는  컨트롤러에서 담은 @ModelAttribute("regions")

값으로 쓰겠다는의미이구 이는 

value 직접 지정해주면 우선순위가 더 높아서 세팅이 되는거구요..

제가 이해한게맞나요 ?

..........................

끝으로 자동으로 checked 해주는 기능 대박이네요.. 

좋은 설명 항상 감사합니다

답변 1

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 기팝님

th:field가 여러가지 용도로 사용되는데요.

checkbox에서 사용되는 경우에는 th:value를 따로 지정해주어야 합니다.

th:field="*{regions}"의 값과 th:value="${region.key}"의 값이 일치하는지 확인합니다. 그래서 일치하면 체크박스를 체크해줍니다.

th:value="${region.key}"가 없으면 상품 수정에서 오류가 발생합니다.

감사합니다.

기팝님의 프로필 이미지
기팝
질문자

감사합니다.

설명해주신건  th:each 안에 checkbox가 있을때 인거죠??

김영한님의 프로필 이미지
김영한
지식공유자

네 맞습니다.

관련해서 타임리프 메뉴얼을 참고해보시면 더 도움을 얻으실 수 있을거에요.

https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#checkbox-fields

감사합니다.

기팝님의 프로필 이미지
기팝
질문자

네 참고하겠습니다 감사합니다.

기팝님의 프로필 이미지
기팝

작성한 질문수

질문하기