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

세승님의 프로필 이미지
세승

작성한 질문수

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

체크 박스 - 단일2

체크박스 value값이 항상 true로 되어 있는 이유

해결된 질문

작성

·

506

0

checkbox 강의를 듣던 중 의문점이 생겨 질문드립니다.

아래의 코드는 강의에 사용되었던 단일 체크박스 - 판매 여부의 코드입니다.

<input type="checkbox" id="open" name="open" th:field="*{open}" class="form-check-input">

아래의 코드를 이용하여 실제 렌더링된 페이지의 소스를 보면,

체크 하지 않을시,

<input type="checkbox" id="open" name="open" class="form-check-input" disabled value="true">

체크 할시,

<input type="checkbox" id="open" name="open" class="form-check-input" disabled value="true" checked="checked">

checked="checked"의 여부만 다르고, value는 둘다 "true"로 되어있었습니다.

컨트롤러에서는 item 객체를 model에 담을 때, item.open의 값을 false(체크 안됌), true(체크 됌)으로 명확하게 설정한 후, 이를 model에 담아서 전달했을텐데, 왜 실제 렌더링된 소스에서는 둘다 value="true"로 나오는 건가요?

만약에 타임리프가 item.open의 value 값을 토대로 checked="checked"를 넣어줄지를 정하는 거라면, 당연히 value에 저장되는 값이 실제 체크를 했는지에 따라 달라져야하는게 아닌가라는 생각이 들었습니다.

 

+ 강의 교본 2. 타임리프 - 스프링 통합과 폼 19페이지의 "타임 리프는 th:field에 지정한 값과 th:value의 값을 비교해서 체크를 자동으로 처리해준다" 의 설명이 너무 추상적인 것 같습니다.

같은 강의 교본 4페이지를 보면 th:field가 id, name, value 속성을 모두 자동으로 만들어준다고 되어있는데, 위의 "th:field에 지정한 값"이라는 것은 정확히 무엇을 지칭하는 말인지 모르겠습니다. 좀 더 자세한 설명을 해주셨으면 좋겠습니다.

 

답변 1

세승님의 프로필 이미지
세승

작성한 질문수

질문하기