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

도토리님의 프로필 이미지
도토리

작성한 질문수

스프링 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 값이 들어갑니다.

감사합니다.

도토리님의 프로필 이미지
도토리

작성한 질문수

질문하기