반응형
타임리프 체크 박스 단일(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편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 타임리프 체크 박스 여러개 만들고 체크하기 (0) | 2022.02.08 |
---|---|
[Spring Boot] : 타임리프 체크 박스 단일(2) (0) | 2022.02.08 |
[Spring Boot] : 타임리프 입력 폼 처리하기 th:object와 th:field 사용 (0) | 2022.02.08 |
[Spring Boot] : 타임리프 스프링 통합 메뉴얼 및 스프링에서 사용하기 (0) | 2022.02.08 |
[Spring Boot] : 타임리프 템플릿 레이아웃(2) (0) | 2022.02.07 |
댓글