<html xmlns:th="http://www.thymeleaf.org">
th:text
를 사용하면 된다<span th:text="${data}">
[[...]]
를 사용하면 된다.model
안에 data변수에 "hello gloom!" 이라고 추가해주고 뷰템플릿을 호출해준다.public class BasicController {
@GetMapping("text-basic")
public String textBasic(Model model){
model.addAttribute("data", "hello gloom!");
return "basic/text-basic";
}
}
<html xmlns:th="http://www.thymeleaf.org">
th:text=${변수}
다른 하나는 [[${변수}]]
를 입력했다. <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>컨텐츠에 데이터 출력하기</h1>
<ul>
<li>th:text 사용 = <span th:text="${data}"></span></li>
<li>컨텐츠 안에서 직접 출력 = [[${data}]]</li>
</ul>
</body>
</html>
<``>
이런 특수 문자가 있는 것은 주의해야한다.<
를 HTML 태그의 시작으로 인식한다. <
를 테그의 시작이 아니라 문자로 표현할 수 있는 방법이 필요한데, 그 방법으로 HTML 엔티티
가 있다.HTML에서 사용하는 특수문자
-> HTML 엔티티
의 과정을 이스케이프(escape)라고 한다.th:text
,[[]]
은 이스케이프를 제공한다.<
-> <
>
-> >
<b></b>
태그를 문자로 인식하게 만든다.이러한 문제를 어떻게 해결할까?
escape 기능을 사용하지 않으려면 어떻게 해야할까?
th:text
-> th:utext
[[...]]
-> [(...)]
반복되는 부분은 생략하고,
<body>
~</body>
안에 만 입력하였다.
<h1>text 와 utext</h1>
<ul>
<li>th:text 사용 = <span th:text="${data}"></span></li>
<li>th:utext 사용 = <span th:utext="${data}"></span></li>
</ul>
<h1><span th:inline="none">[[]] 와 [()]</span></h1>
<ul>
<li>escaped = [[${data}]]</li>
<li>unEscaped = [(${data})]</li>
</ul>
<b></b>
가 잘 적용됨을 확인할 수 있었다.