기본 메뉴얼과 통합 메뉴얼이 있다고 함. 스프링과 통합하는 기능이 좋아서 이용하는 사람도 많다.
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
Tutorial: Using Thymeleaf
1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thymeleaf is to provide a
www.thymeleaf.org
https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html
Tutorial: Thymeleaf + Spring
Preface This tutorial explains how Thymeleaf can be integrated with the Spring Framework, especially (but not only) Spring MVC. Note that Thymeleaf has integrations for both versions 3.x and 4.x of the Spring Framework, provided by two separate libraries c
www.thymeleaf.org
spring의 model에 등록한 걸 thymeleaf의 form에서 더 편리하게 사용하는 방법이다.
form의 th:object안에 있다면 ${오브젝트이름.오브젝트속성} = *{오브젝트속성} 과 같고, th:field를 쓰면 자동으로 id, name, value를 채워준다. value는 스프링에서 준 값.
이걸 하면 좋은게 오타같은 방지 가능.
또 스프링에서 해주는 골치아픈 체크박스같은 문제들을 해결해준다. 값이 체크되어 있을 경우 html이 on을 반환해주지만 아닐 경우 그냥 그 값 자체를 생략해서 보낸다는 것. 추가할때 문제가 안될 수도 있지만 수정할 때 문제될 수도 있고, 무엇보다 null보다는 false로 하는게 편하다.
그래서 이건 스프링 자체에서 트릭을 하나 만들었는데, hidden으로 앞에 언더바 _를 붙이고 항상 on을 하는 걸 html에 넣으면 true와 false로 할 수 있다.
하지만 이건 스프링만이 가지고 있는 기능으로 만약 타임리프를 안쓰면 내가 일일해 히든 _ 을 써야 한다. 그래서 타임리프도 지원해준다.
알아서 렌더링 됨.
disabled같은것도 타임리프를 위해 만든 field 속성을 이용하면 알아서 해준다. 원래 값이 true면 check=check를 넣어줘라 같은 걸 해줘야 한다.
메서드에 @ModelAttribute를 사용하면 해당 모델 아이템은 모든 함수의 모델에 들어간다. 편리성.
그러면 타임리프가 스프링 모델에서 정의한 아이템을 가져와서 for문 돌리기 가능.
중요한 건 id를 자동으로 생성해주는 것. for문을 돌리면 정해지지 않은 id를 지정해야 하니 prev를 지원해준다.
모델 오브젝트를 꺼내서 해당되면 checked, 아니면 안하기 같은것도 가능하다.
다음은 라디오 타입
주의해야 할 특징이 있는데, 라디오는 아무것도 체크가 안되어 있으면 null이 들어간다. 즉 hidden _을 생성 안해줌.
한번 클릭하면 해제할 수 없으니 처음에 자동으로 클릭하게 하던지, null도 따로 처리할 지는 알아서 하자.
다음은 셀렉트 박스
참고로 무조건 이렇게 쓸 필요는 없고, 매번 new로 만들어서 메모리 낭비할 필요 없이 static으로 해도 된다.
'CS > 김영한 스프링 강의' 카테고리의 다른 글
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션4. 검증1 - Validation (0) | 2023.07.30 |
---|---|
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션3. 메시지, 국제화 (0) | 2023.07.27 |
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션2. 타임리프 - 기본 기능 (0) | 2023.07.24 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션7. 스프링 MVC - 웹 페이지 만들기 (0) | 2023.07.22 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션6. 스프링 MVC - 기본 기능 (0) | 2023.07.20 |