06장. 템플릿 엔진 알아보기

정빈·2023년 6월 25일
0

1. 템플릿 엔진의 개요

  • 템플릿 엔진이란?
    -데이터를 미리 정의된 템플릿에 바인딩해서 뷰의 표시를 도와주는 것
    -바인딩 : 요소나 데이터, 파일 등을 서로 연결하는 것

  • 타임리프란?
    -HTML 기반의 템플릿 엔진으로, 정해진 문법으로 작성하면 페이지를 동적으로 조립해줌
    -최종 출력을 생각하면서 뷰를 만들 수 있음


2. Model 인터페이스의 사용법

  • Model 인터페이스란?
    -처리한 데이터를 뷰에 표시하고 싶을 경우 데이터를 전달하는 역할
    -스프링 MVC에 의해 관리되며, 수동 또는 자동으로 객체를 저장하고 관리하는 기능을 제공
    -Model을 이용하고 싶은 경우 요청 핸들러 메서드의 인수에 Model타입을 전달하면 스프링 MVC가
    자동으로 Model 타입 인스턴스를 설정함
  • 중요 메서드
    - addAttribute : 특정 이름에 대해 값을 설정
    Model addAttribute(String name, Object value)

3. 타임리프 사용법

  • 직접 문자를 삽입
    - th:text="[출력 문자]"

  • 인라인 처리
    - [[${}]]로 본문에 변수를 포함할 수 있음

  • 값 결합
    - '+'를 이용

  • 값 결합(리터럴 치환)
    - | 문자 |

  • 지역 변수
    - th:with="변수 이름 = 값"로 변수에 값 할당

  • 비교와 등가
    - 비교 등가 연산자 사용

  • 조건 연산자
    - 삼항 연산자 사용 가능

  • 조건 분기(true)
    - th:if="[조건]"에서 참일 경우 작성 태그와 자식 요소를 표시

  • 조건 분기(false)
    - th:unless="[조건]"에서 거짓일 경우 작성 태그와 자식 요소를 표시

  • switch
    - 부모 요소의 th:switch 값과 자식 요소의 th:case 값이 동일할 경우 HTML요소를 출력

  • 참조(데이터를 결합한 객체)
    - '객체명.필드', '객체명['필드']' 형식으로 값 참조

  • 참조(th:object)
    - th:object에 설정 후 자식 요소에서 '*{필드명}'으로 사용

  • 참조(List)
    - 인덱스 번호로 참조

  • 참조(Map)
    - 'map.key', map['키'] 형식으로 참조

  • 반복
    - th:each="[요소 저장용 변수]: ${[반복 처리하는 객체]}"

  • 반복 상태
    - th:each="[요소 저장용 변수],[상태 변수],[반복 처리할 객체]"

    상태변수기능 개요
    index0부터 시작하는 인덱스로 현재 인덱스를 표시
    count1부터 시작하는 인덱스로 현재 인덱스를 표시
    size반복 처리하는 객체의 사이즈를 표시
    current현재 반복 요소의 객체 표시
    even현재 요소가 짝수 번째인지 확인
    odd현재 요소가 홀수 번째인지 확인
    first현재 요소가 첫 번째 요소인지 확인
    last현재 요소가 마지막인지 확인
  • 유틸리티 객체
    - 타임리프에서 자주 사용되는 클래스를 '#name'이라는 상수로 정의하고 있어 그대로 사용 가능

    유틸리티 객체기능 개요
    #strings문자 관련 편의 기능
    #numbers숫자 서식 지원
    #boolsBoolean 관련 기능
    #datesjava.util.Date 서식 지원
    #objects객체 관련 기능
    #arrays배열 관련 기능
    #listsList 관련 기능
    #setsSet 관련 기능
    #mapsMap 관련 기능
  • 다른 템틀릿 삽입하기
    - 프래그먼트화

  • 레이아웃
    - thymeleaf-layout-dialect 필요

0개의 댓글