참고
더보기
Spring Boot & Thymeleaf 시리즈는 김영한 님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의를 정리한 글입니다. 글에 첨부된 사진은 해당 강의의 강의 자료에서 캡쳐한 것입니다. 제 Github에만 올려뒀다가, 정보 공유와 강의 홍보(?)를 위해 블로그에도 업로드합니다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의
웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있
www.inflearn.com
마크다운 형식으로 작성한 글을 블로그에 다시 올리는 거라 가독성이 많이 떨어집니다. 조금더 편하게 보시려면 아래의 Github repository에서 보시면 됩니다.
GitHub - Kloong1/TIL: Today I Learned.
Today I Learned. Contribute to Kloong1/TIL development by creating an account on GitHub.
github.com
타임리프 - 리터럴
- 리터럴은 소스 코드상에 고정된 값을 말하는 용어이다.
- 예를 들어서 다음 코드에서 "Hello" 는 문자 리터럴, 10 , 20 는 숫자 리터럴이다.
String a = "Hello"
int a = 10 * 20
- 내용이 쉬워 보이지만 처음 타임리프를 사용하면 많이 실수하니 잘 보아두자.
Literal
- 타임리프에는 다음과 같은 리터럴이 있다.
- 문자:
'hello'
- 숫자:
10
- Boolean:
true
,false
- null:
null
- 문자:
- 타임리프에서 문자 리터럴은 항상
'
(작은 따옴표)로 감싸야 한다.<span th:text="'hello'">
- 그런데 문자를 항상 ' 로 감싸는 것은 너무 귀찮은 일이다. 공백 없이 쭉 이어진다면 하나의 의미있는 토큰으로 인지해서 다음과 같이 작은 따옴표를 생략할 수 있다.
A-Z
,a-z
,0-9
,[]
,.
,-
,_
<span th:text="hello">
- 다음 태그는 오류가 난다.
<span th:text="hello world!"></span>
- 문자 리터럴은 원칙상
'
로 감싸야 한다. "hello world!"
는 중간에 공백이 있어서 하나의 의미있는 토큰으로 인식되지 않기 때문에 오류가 난다.<span th:text="'hello world!'"></span>
- 이렇게
'
로 감싸면 정상 동작한다.
사용 예시
BasicController.java 내용 추가
package kloong.thymeleaf.basic;
import ... //생략
@Controller
@RequestMapping("/basic")
public class BasicController {
@GetMapping("/literal")
public String literal(Model model) {
model.addAttribute("data", "Thymeleaf!");
return "basic/literal";
}
}
/resources/templates/basic/literal.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>리터럴</h1>
<ul>
<!--주의! 다음 주석을 풀면 예외가 발생함-->
<!-- <li>"hello world!" = <span th:text="hello world!"></span></li>-->
<li>'hello' + ' world!' = <span th:text="'hello' + ' world!'"></span></li>
<li>'hello ' + 1004 + '!' = <span th:text="'hello ' + 1004 + '!'"></span></li>
<li>'hello world!' = <span th:text="'hello world!'"></span></li>
<li>[hello-world] = <span th:text="[hello-world]"></span></li>
<li>'hello ' + ${data} = <span th:text="'hello ' + ${data}"></span></li>
<li>리터럴 대체 |hello ${data}| = <span th:text="|hello ${data}|"></span></li>
</ul>
</body>
</html>
<span th:text="'hello ' + 1004 + '!'">
- 리터럴 끼리 + 연산을 통해 연결이 가능하다.
<span th:text="[hello-world]">
- 사이에 공백이 없고,
A-Z
,a-z
,0-9
,[]
,.
,-
,_
문자들로만 이어진 하나의 토큰이기 때문에''
가 없어도 문자 리터럴로 인식된다. - 다른 예시 처럼
!
를 끝에 붙이면 규칙에 어긋난 문자가 포함되기 때문에 오류가 난다.
- 사이에 공백이 없고,
<span th:text="'hello ' + ${data}">
- 변수 표현식을 리터럴에 더해서 사용할 수 있다.
<span th:text="|hello ${data}|">
|...|
: 리터럴 대체 문법-
- 연산을 쓰지 않고 편하게 쓸 수 있다.
'Spring > Spring Boot & Thymeleaf' 카테고리의 다른 글
[Spring Boot & Thymeleaf] 9. 타임리프 - 속성 값 설정 (0) | 2022.10.24 |
---|---|
[Spring Boot & Thymeleaf] 8. 연산/연산자 (0) | 2022.10.24 |
[Spring Boot & Thymeleaf] 6. URL 링크 (0) | 2022.09.05 |
[Spring Boot & Thymeleaf] 5. 유틸리티 객체와 날짜 다루기 (0) | 2022.09.05 |
[Spring Boot & Thymeleaf] 4. 기본 객체들 (1) | 2022.09.05 |
댓글