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

도토리님의 프로필 이미지

작성한 질문수

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

체크 박스 - 단일2

th:field="*{open}"에 의해 생성된 value 속성 관련

작성

·

2.6K

·

수정됨

0

addForm.html의 일부 코드입니다.

<form th:object="${item}">
    <input type="text" id="itemName" th:field="*{itemName}">
    <input type="checkbox" id="open" th:field="*{open}">
</form>

렌더링 후
첫 번째 input: <input type="text" id="itemName" name="itemName" value="">
두 번째 input: <input type="checkbox" id="open" name="open" value="true">
               <input type="hidden" name="_open" value="on"/>

화면 캡처 2023-01-25 131353.pngth:field에 의해 <input>에 name, value 속성이 생기는데, value에는 각각 itemName, open의 값이 들어갑니다.
th:object="${item}"에서 넘긴 Item 객체는 빈 객체니까, 첫 번째 <input>에 value=""가 들어간 것은 알겠습니다.
그런데, 왜 두 번째 <input>에는 value=""가 아닌 어떻게 true라는 값이 들어가는 것인가요?
혹시 <input type="checkbox">일 때는 value에 들어가는 것이 달라지는 것인가요?

답변 2

0

저도 checkbox에 체크를 안하고, submit을 해도, value가 생성되고 true가 들어있는게 의아했었습니다.

https://www.inflearn.com/questions/255425/%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%86%8C%EC%8A%A4%EB%B3%B4%EA%B8%B0%EC%97%90%EC%84%9C-true-%EA%B0%92-%EC%A7%88%EB%AC%B8

이전에도 관련된 질문이 있었는데, 이를 확인해주시면 될 것 같습니다.

0

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

안녕하세요. 도토리님

문자 타입의 입력 폼에는 ""이 들어가고, checkbox처럼 boolean 타입이 들어가는 경우에는 예외적으로 true, false 값이 들어갑니다.

감사합니다.