Thymeleaf에서 utext
와 text
는 템플릿 내에서 출력하는 텍스트를 다루는 속성으로, 각각 HTML 인코딩 여부에 따라 다른 동작을 수행합니다.
text
속성은 HTML 인코딩을 수행하여 텍스트를 출력하는 속성입니다. 이 속성은 일반적으로 HTML 요소의 속성값이나 텍스트 노드 내에서 변수나 객체의 값을 출력할 때 사용됩니다. 예를 들어, 다음과 같이 th:text
속성을 사용하여 변수 name
의 값을 출력할 수 있습니다.
html<p>Hello, <span th:text="${name}"></span>!</p>
위 코드는 Thymeleaf 템플릿 엔진이 처리되어 HTML 문서로 출력될 때, name
변수의 값을 HTML 인코딩하여 span
요소의 텍스트 노드에 삽입합니다.
반면에, utext
속성은 HTML 인코딩을 수행하지 않고 텍스트를 출력하는 속성입니다. 이 속성은 일반적으로 HTML 요소 내에서 변수나 객체의 값을 출력할 때 사용됩니다. 예를 들어, 다음과 같이 th:utext
속성을 사용하여 변수 html
의 값을 출력할 수 있습니다.
html<div th:utext="${html}"></div>
위 코드는 Thymeleaf 템플릿 엔진이 처리되어 HTML 문서로 출력될 때, html
변수의 값을 HTML 인코딩하지 않고 div
요소 내에 직접 삽입합니다.
따라서 text
와 utext
는 HTML 인코딩 여부에 따라 다른 동작을 수행하며, 템플릿 작성 시 HTML 인코딩 여부에 따라 적절하게 사용해야 합니다. 일반적으로 HTML 태그를 출력하는 경우 text
를 사용하고, HTML 태그 내에 HTML 코드를 출력하는 경우 utext
를 사용합니다.
[[...]] 이것과 쌍 th:text [(...)] 이것과 쌍 th:utext unescaped 임.. <p>The message is "[(${msg})]"</p> 변환 => <p>The message is "This is <b>great!</b>"</p> <p>The message is "[[${msg}]]"</p> 변환 => <p>The message is "This is <b>great!</b>"</p> https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html#inlining