스프링 통합과 폼

meluu_·2024년 1월 14일
0

스프링

목록 보기
18/27
post-thumbnail

🌿 시작하기 앞서


스프링 부트 3.2.1 버전을 기준으로 작성됨
대부분이 실습코드이므로 학습위주로 정리함

스프링 통합으로 추가되는 기능들

  • 스프링의 SpringEL 문법 통합

  • ${@myBean.doSomething()} 처럼 스프링 빈 호출 지원

  • 편리한 폼 관리를 위한 추가 속성

    • th:object (기능 강화, 폼 커맨드 객체 선택)
    • th:field , th:errors , th:errorclass
  • 폼 컴포넌트 기능

    • checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능 지원
  • 스프링의 메시지, 국제화 기능의 편리한 통합

  • 스프링의 검증, 오류 처리 통합

  • 스프링의 변환 서비스 통합(ConversionService)

타임리프 템플릿 엔진을 스프링 빈에 등록 및 타임리프용 뷰 리졸버를 스프링 빈으로 등록하는 것을 스프링부트가 모두 자동화 해준다.

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

스프링 부트가 제공하는 타임리프 설정 (thymeleaf 검색)


✔️ 선택 변수 식, th:field


th:object: 커맨드 객체를 지정

  • *{...} : 선택 변수 식, th:object 에서 선택한 객체에 접근
  • th:field
    • HTML 태그의 id , name , value 속성을 자동으로 처리
    • 속성 값들은 객체의 필드 값
// 렌더링 전
<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인 경우 체크를 자동 처리

🔖 학습내용 출처

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

profile
열심히 살자

0개의 댓글