일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리눅스
- #{..}
- 개발시작전 자세
- cmd
- js
- 타임리프
- Java
- 타임리프와 스프링
- 명령어
- 프로젝트 클린
- StringUtils.hasText
- 함수 인자값 id
- 비밀번호 변경 명령어
- 순서 보장
- Intellij
- it
- 추천 프로그램
- 하모니카 OS 5
- BindingResult
- JSON
- select
- Test 룸북 사용하기
- 설정
- 추천 사이트
- linux
- 다른사람 프로젝트 수정전 가져야할 자세
- 시퀀스 조회
- 스프링부트
- 자바스크립트 인라인
- 룸북
Archives
- Today
- Total
웹개발 블로그
[Spring+html] 체크박스 체크&미체크(타임리프 사용 전) 본문
<div class="form-check">
<input type="checkbox" id="open" name="open" value="${item.open}" class="form-check-input">
<input type="hidden" name="_open" value="on"/><!--히든 필드 추가, 귀찮..-->
<label for="open" class="form-check-label">판매 오픈</label>
</div>
#체크박스 체크
open=on&_open=on
체크 박스를 체크하면 스프링 MVC가 open에 값이 있는지 확인하며 이때 _open은 무시한다.
#체크박스 미체크
_open=on
체크 박스를 체크하지 않으면
스프링 MVC가 _open만 있는 것을 확인하고 open의 값이 체크되지 않았다고 인식한다.
이 경우 서버에서 Boolean 타입을 찍어보면 결과가 'null'이 아닌 'false'인 것을 확인할 수 있다.
결과 보기 => log.info("item.open={}", item.getOpen());
@PostMapping("/add")
public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes) {
//itemName=%E3%85%8E%E3%85%87&price=1111&quantity=1111&open=true&_open=on
//_open <-- 단일 체크박스 단점 보안
log.info("item.open={}", item.getOpen()); //item.open=true
log.info("item.name={}", item.getItemName()); // item.name=ㅎㅇ
Item savedItem = itemRepository.save(item);
redirectAttributes.addAttribute("itemId", savedItem.getId());//
redirectAttributes.addAttribute("status", true);
return "redirect:/form/items/{itemId}";
}
타임리프를 사용하면 🔽귀찮게 추가 안해도 된다.. 다음 이시간에..
<input type="hidden" name="_open" value="on"/><!--히든 필드 추가-->
'◆SPRING > 정리' 카테고리의 다른 글
[Spring] 국제화 (0) | 2023.05.31 |
---|---|
스프링 또는 스프링부트 validation(유효성검사) 하기 (0) | 2023.05.23 |
[HTML Form 데이터 전송] application/x-www-form-urlencoded 과 multipart/form-data 차이 (0) | 2023.04.04 |
assertThat import (0) | 2023.03.11 |
[Spring] 메시지 (0) | 2023.02.08 |