본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 타임리프 체크 박스 단일(1)

by 오주현 2022. 2. 8.
반응형

타임리프 체크 박스 단일(1)


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

HTML에서 이런 식으로 보통 체크 박스를 사용한다.

 

체크 박스를 체크하게 되면 open=on으로 들어오고 스프링에서 on을 true타입으로 변환해준다. 이때 스프링 타입 컨버터가 작동하여 이렇게 되는 것인데 이것은 다른 강의에서 다룬다고 한다.

 

문제는 체크 박스를 체크하지 않았을 때 발생한다.

체크 박스를 체크하지 않고 폼을 전송하게 되면 open이라는 필드 자체가 서버로 전송되지 않는다. 즉, 아무런 값이 들어오지 않아 이게 어떻게 된 것인지 알 수가 없는 것이다. 값 또한 찍어보면 null 값이 나타나는데 이 경우 문제가 생길 확률이 있다.

 

이걸 해결하는 방법도 강의에서 알려주었다.

<input type="hidden" name="_open" value="on"/>

체크 해제를 인식하기 위해 히든 필드를 넣어주는 것이다.

 

이렇게 되면 체크 박스를 체크한 경우에는 open=on&_open=on 이렇게 값이 들어와 true 값을 주고, 체크 박스를 체크하지 않은 경우에는 _open=on 이렇게 데이터가 단일로 들어오기 때문에 open의 값이 체크되지 않았다고 인식하고 false를 리턴해 준다.


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글