• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.01.25 13:55 작성 23.01.25 14:01 수정 조회수 2.5k

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

홍혁준님의 프로필

홍혁준

2023.02.01

저도 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 값이 들어갑니다.

감사합니다.