변수 표현식 (Expression)
Thymeleaf에서 변수 표현식은 템플릿에서 데이터를 동적으로 출력하거나 조작하는 데 사용됩니다. 변수 표현식은 Thymeleaf의 강력한 기능 중 하나로, HTML 템플릿 내에서 서버 측 데이터를 사용할 수 있게 해줍니다. 이번 챕터에서는 Thymeleaf에서 변수 표현식을 어떻게 사용하는지 자세히 살펴보겠습니다.
1. 변수 표현식의 기본 구문
변수 표현식은 ${...} 형식으로 작성됩니다. 이 안에는 Thymeleaf에서 사용 가능한 변수나 속성의 이름이 들어갑니다. 변수 표현식은 HTML 속성 값, 텍스트 내용, CSS 스타일 등 다양한 위치에서 사용할 수 있습니다.
예를 들어, 다음은 변수 표현식을 사용하여 name 변수의 값을 출력하는 예제입니다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Variable Expression Example</title>
</head>
<body>
<h1>Hello, <span th:text="${name}">Guest</span>!</h1>
</body>
</html>
위의 코드에서 ${name}은 서버에서 전달된 name 변수의 값을 출력합니다. 만약 name 변수가 없다면 "Guest"라는 기본값이 출력됩니다.
2. 변수 표현식에서 연산과 조건문 사용하기
변수 표현식은 단순히 변수 값을 출력하는 것뿐만 아니라, 연산자와 조건문을 사용하여 더욱 다양한 기능을 수행할 수 있습니다. 예를 들어, 다음은 변수 score의 값에 따라 학점을 표시하는 예제입니다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Grade Expression Example</title>
</head>
<body>
<p th:text="'Your grade is ' + (${score} >= 90 ? 'A' : (${score} >= 80 ? 'B' : (${score} >= 70 ? 'C' : 'F')))"></p>
</body>
</html>
위의 코드에서는 score 변수의 값에 따라 학점을 출력합니다. 조건 연산자 (?:)를 사용하여 점수 범위에 따라 학점을 할당하고 출력합니다.
3. Thymeleaf 표준 내장 객체 사용하기
Thymeleaf는 표준 내장 객체를 제공하여 더욱 강력한 템플릿 처리를 지원합니다. 예를 들어, #strings 객체는 문자열 조작 기능을 제공하고, #dates 객체는 날짜 관련 기능을 제공합니다. 이러한 표준 내장 객체를 활용하여 템플릿을 더욱 다양하게 처리할 수 있습니다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf Standard Expression Example</title>
</head>
<body>
<p th:text="${#strings.substring(name, 0, 5)}"></p>
</body>
</html>
위의 코드에서는 #strings.substring(...) 함수를 사용하여 name 변수의 처음 5글자를 출력합니다.
변수 표현식은 Thymeleaf의 강력한 기능 중 하나로, 동적인 웹 페이지 구축을 위한 필수 도구입니다. 변수 표현식을 효율적으로 활용하면 템플릿을 더욱 다양하고 동적으로 만들 수 있습니다.
'Thymeleaf' 카테고리의 다른 글
9. Thymeleaf 템플릿 - 2 (0) | 2024.02.22 |
---|---|
8. Thymeleaf 템플릿 - 1 (0) | 2024.02.22 |
7. Thymeleaf 기본 문법 - 5 (0) | 2024.02.22 |
6. Thymeleaf 기본 문법 - 4 (0) | 2024.02.22 |
5. Thymeleaf 기본 문법 - 3 (0) | 2024.02.22 |
4. Thymeleaf 기본 문법 - 2 (0) | 2024.02.22 |
2. Thymeleaf 소개 - 2 (0) | 2024.02.22 |
1. Thymeleaf 소개 - 1 (0) | 2024.02.22 |