❶ Model 객체 이용하기
▪︎ HelloController.java
package org.choongang.ewha.hithymeleaf.controller;
import org.choongang.ewha.hithymeleaf.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import lombok.extern.slf4j.Slf4j;
@Slf4j // 스프링에서 로그를 사용하기 쉽게 만든 인터페이스
@Controller
public class HelloController {
@GetMapping("/hello")
public void hello(Model model) {
log.info("{}", "/hello로 요청 들어옴");
// * 웹 프로토콜의 상태관리(유지)를 위한 상태 트래킹용 공유 공간에
// 뷰로 전달할 데이터 임시 보관
// model.addAttribute("Key", "Value")
model.addAttribute("username", "구름");
model.addAttribute("age", 20);
• 라우터 주소매핑 메서드의 리턴값을 void로 지정할 경우, 요청 주소와 뷰템플릿 파일의 이름이 같아야 함
다만, 권장하지 않음 ( 보안 상의 이유로 파일 이름과 뷰 이름 다르게 설정하는 것 권장 )
• Model
- org.springframework.ui.Model ( MVC 패턴의 Model 아님 )
- UI용 화면과 화면 사이 또는 화면과 controller 사이에 임시 데이터를 저장하기 위한 버퍼나 캐쉬같은 임시 메모리 공간
▪︎ hello.html
<!DOCTYPE html>
<html xmlns="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--/*
현재 문서의 경우, 순수 HTML 페이지인데 타임리프의 속성이 발견되면 thymeleaf 템플릿 기능이 추가됨
순수 HTML 페이지로 작동하다가 th:text와 같은 타임리프 속성 발견 시,
서버 쪽 뷰 템플릿 기능을 추가하는 식으로 동작함 (thymeleaf 뷰 템플릿을 선호하는 이유)
*/-->
<h1>이름 : <span th:text="${ username }">th:text 속성의 내용이 이 곳에 출력</span></h1>
<h1>나이 : <span th:text="${age}"></span></h1>
</body>
</html>
▪︎ 실행결과
❷ 스타일 적용시키기
▪︎ HelloController.java
package org.choongang.ewha.hithymeleaf.controller;
import org.choongang.ewha.hithymeleaf.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import lombok.extern.slf4j.Slf4j;
@Slf4j // 스프링에서 로그를 사용하기 쉽게 만든 인터페이스
// log4j logback 어떤 로그 라이브러리라도 slf4j 규격을 사용하면
// 동일 사용법을 적용
@Controller
public class HelloController {
@GetMapping("/hello")
public void hello(Model model) {
log.info("{}", "/hello로 요청 들어옴");
// ... 생략
// * 스타일 적용
model.addAttribute("data1", "안녕하세요");
model.addAttribute("data2", "<h1 style='color:green'>안녕하세요</h1>");
}
}
'백엔드 > Spring Boot' 카테고리의 다른 글
외부 파일 import 방법 (0) | 2023.08.08 |
---|---|
7. 블로그 화면 구성하기 (2) - 블로그 글 목록 뷰 구현하기 (0) | 2023.08.04 |
Thymeleaf (0) | 2023.08.02 |
7. 블로그 화면 구성하기 (1) - 타임리프 (0) | 2023.08.02 |
6. 블로그 기획하고 API 만들기 (3) - 블로그 글 작성을 위한 API 구현❸ (1) | 2023.07.31 |