스프링 부트 3.2.1 버전을 기준으로 작성됨
대부분이 실습코드이므로 학습위주로 정리함
스프링의 SpringEL 문법 통합
${@myBean.doSomething()}
처럼 스프링 빈 호출 지원
편리한 폼 관리를 위한 추가 속성
폼 컴포넌트 기능
스프링의 메시지, 국제화 기능의 편리한 통합
스프링의 검증, 오류 처리 통합
스프링의 변환 서비스 통합(ConversionService)
타임리프 템플릿 엔진을 스프링 빈에 등록 및 타임리프용 뷰 리졸버를 스프링 빈으로 등록하는 것을 스프링부트가 모두 자동화 해준다.
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
스프링 부트가 제공하는 타임리프 설정 (thymeleaf 검색)
th:object
: 커맨드 객체를 지정
*{...}
: 선택 변수 식, th:object 에서 선택한 객체에 접근th:field
// 렌더링 전
<input type="text" th:field="*{itemName}" />
// 렌더링 후
<input type="text" id="itemName" name="itemName" th:value="*{itemName}" />
// value는 지정한 변수의 값을 사용
자세한 내용은 교재를 참조할 것
여기에는 핵심 내용만 기록
<input type="checkbox" id="open" name="open" class="form-check-input">
HTML checkbox는 선택이 안되면 클라이언트에서 서버로 값 자체를 보내지 않음
히든필드를 만들어서 _(언더스코어)를 붙여서 전송하면 체크 해제를 인식 (스프링 MVC)
<input type="checkbox" id="open" name="open" class="form-check-input">
<!-- 히든 필드 -->
<input type="hidden" name="_open" value="on"/>
이로써 체크하지 않으면 open = false
값이 넘어간다.
<input type="checkbox" id="open" th:field="*{open}" class="form-checkinput">
checked="checked"
속성이 추가되는데 타임리프는th:field
를 사용하면 값이 true
인 경우 체크를 자동 처리🔖 학습내용 출처