@Controller
@RequestMapping("/basic")
public class BasicController {
@GetMapping("text-basic")
public String textBasic(Model model){
model.addAttribute("data","Hello Spring!");
return "basic/text-basic";
}
}
<!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}">123444</span></li>
<li>컨텐츠 안에서 직접 출력하기 = [[${data}]]</li>
</ul>
</body>
</html
첫 번째는 텍스트가 바뀌어서 1234440→HelloSpring으로 변환
두 번째는 컨텐츠 내용 안에서 Hello Spring 추가.
이스케이프
model.addAttribute("data","Hello <b>Spring</b>");
위의 코드를 원하면 출력이 어떻게 될까
내가 원하는 건 웹 페이지에서 굵은 글씨의 Spring이 출력되는 것이다.
하지만 출력 결과는 <b> Spring </b> 으로 나온다.
웹 브라우저는 <를 HTML 테그의 시작으로 인식한다. 따라서 < 테그의 시작이 아니라 문자로 표현할 수 있는 방법이 필요한데, 이것을 HTML 엔티티라고 한다. 특수문자를 HTML 엔티티로 변경하는 것을 이스케이프라고 한다.