text, utext

HTML ์ฝ˜ํ…์ธ ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ๋Š” th:text๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. HTML ํƒœ๊ทธ ์†์„ฑ์ด ์•„๋‹Œ ์ฝ˜ํ…์ธ  ์˜์—ญ ์•ˆ์—์„œ ์ถœ๋ ฅ์„ ํ•˜๋ ค๋ฉด [[...]]์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ

@RequestMapping("text-basic")
    public String textBasic(Model model) {
        model.addAttribute("data", "<b>Hello Spring</b>");
        return "basic/text-basic";
    }
  • HTML

<!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>
img.png

<b> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ๊ทธ๋Œ€๋กœ ๋‚˜์™€๋ฒ„๋ ธ๋‹ค.

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” <๋ฅผ HTML ํƒœ๊ทธ์˜ ์‹œ์ž‘์œผ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•œ๋ฐ ์ด๊ฒƒ์„ HTML ์—”ํ‹ฐํ‹ฐ๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ HTML์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ HTML ์—”ํ‹ฐํ‹ฐ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ด์Šค์ผ€์ดํ”„(escape)๋ผ๊ณ  ํ•œ๋‹ค. ํƒ€์ž„๋ฆฌํ”„์˜ th:text, [[...]]๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์Šค์ผ€์ดํ”„๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Unescape

ํƒ€์ž„๋ฆฌํ”„๋Š” ๋‘ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • th:text -> th:utext

  • [[...]] -> [(...)]

unescape.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>text vs 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">[[...]] vs [(...)]</span></h1>
<ul>
    <li><span th:inline="none">[[...]] = </span>[[${data}]]</li>
    <li><span th:inline="none">[(...)] = </span>[(${data})]</li>
</ul>
</body>
</html>
img_1.png
  • th:inline="none"

    • ์ด ํƒœ๊ทธ ์•ˆ์—์„œ๋Š” ํƒ€์ž„๋ฆฌํ”„๊ฐ€ ํ•ด์„ํ•˜์ง€ ๋ง๋ผ๋Š” ๋œป์ด๋‹ค. ํƒ€์ž„๋ฆฌํ”„๋Š” [[...]]๋ฅผ ํ•ด์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— th:inline="none"์„ ์„ค์ •ํ•ด ์ฃผ์ง€ ์•Š์œผ๋ฉด ํ™”๋ฉด์— ...๋งŒ ๋‚˜์˜จ๋‹ค.

Last updated