반응형
public String textBasic(Model model) {
model.addAttribute("data", "Hello Spring !");
return "basic/text-basic";
}
컨트롤러에서 model에 데이터를 담아서 html에서 값을 띄워준다.
<li>th:text 사용<span th:text="${data}"></span></li>
<li>컨텐츠 안에서 직접 출력하기 = [[${data}]]</li>
이렇게 두 가지 방법을 통해 데이터를 출력해 줄 수 있다.
두번째 방법을 보면 [[...]] 이런 형식의 문법을 사용했는데 이런 형식의 문법을 Escape(이스케이프)라고 한다. HTML 문서는 <, >와 같은 특수 문자를 기반으로 정의되는데 뷰 템플릿으로 HTML 화면을 생성할 때는 출력하는 데이터에 이런 문자가 있는 것을 주의해야 한다.
public String textUnescaped(Model model) {
model.addAttribute("data", "<b>Hello Spring !</b>");
return "basic/text-unescaped";
}
이스케이프를 사용할 때 왜 주의해야 하나면 만약 이처럼 컨트롤러에서 화면 단으로 <b>태그를 포함해서 보내준다. Hello Spring ! 이 이렇게 볼드체로 나타나게 하고 싶은 것이다.
[[${data}]]
하지만 이대로 출력하면
이렇게 태그가 적용되지 않고 태그 자체로 출력이 된다.
태그 자체가 출력되지 않고 적용되어 출력되게 하려면 [(,,,)] 문법을 사용하면 된다.
<li><span th:inline="none">[[...]] = </span>[[${data}]]</li>
<li><span th:inline="none">[(...)] = </span>[(${data})]</li>
지금 위 두 코드는 지금 윗 줄은 [[...]] 이런 문법을 사용했고 아래는 [(...)] 문법을 사용했다.
출력을 했을 때에는 이렇게 출력이 된다. 이스케이프 처리하지 않고 출력되는 것을 Unescape라고 한다.
하지만 보통은 이스케이프 처리를 해서 코드를 작성한다고 한다. 만약 본인이 게시판 같은 것을 만들었을 때 글쓰는 사람이 이상한 태그를 넣어 작성하면 화면이 다 깨질 수 있기 때문에 그렇다고 한다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 타임리프가 제공하는 기본객체, 편의객체 (0) | 2022.02.04 |
---|---|
[Spring Boot] : 변수 - SpringEL (0) | 2022.02.04 |
[Spring Boot] : 타임리프, thymeleaf 소개 (0) | 2022.02.04 |
[Spring Boot] : RedirectAttributes 사용하기 (0) | 2022.02.03 |
[Spring Boot] : Post, Redirect, Get 사용하기 (0) | 2022.02.03 |
댓글