참고
더보기
Spring Boot & Thymeleaf 시리즈는 김영한 님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의를 정리한 글입니다. 글에 첨부된 사진은 해당 강의의 강의 자료에서 캡쳐한 것입니다. 제 Github에만 올려뒀다가, 정보 공유와 강의 홍보(?)를 위해 블로그에도 업로드합니다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의
웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있
www.inflearn.com
마크다운 형식으로 작성한 글을 블로그에 다시 올리는 거라 가독성이 많이 떨어집니다. 조금더 편하게 보시려면 아래의 Github repository에서 보시면 됩니다.
GitHub - Kloong1/TIL: Today I Learned.
Today I Learned. Contribute to Kloong1/TIL development by creating an account on GitHub.
github.com
타임리프 - 기본 객체들
타임리프는 다음과 같은 기본 객체를 제공한다.
${#request}
HttpServletRequest
객체
${#response}
HttpServletResponse
객체
${#session}
Session
객체
${#servletContext}
ServletContext
객체
${#locale}
Locale
객체
BasicController.java 내용 추가
package kloong.thymeleaf.basic;
import ... //생략
@Controller
@RequestMapping("/basic")
public class BasicController {
@GetMapping("/basic-objects")
public String basicObjects(HttpSession session) {
session.setAttribute("sessionData", "Hello Session");
return "basic/basic-objects";
}
@Component("helloBean")
static class HelloBean {
public String hello(String data) {
return "Hello" + data;
}
}
}
HttpSession
객체에 데이터를 추가했다.helloBean
이라는 이름을 가진 Spring bean을 컴포넌트 스캔 방식으로 등록했다.
/resources/templates/basic/basic-objects.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>식 기본 객체 (Expression Basic Objects)</h1>
<ul>
<li>request = <span th:text="${#request}"></span></li>
<li>response = <span th:text="${#response}"></span></li>
<li>session = <span th:text="${#session}"></span></li>
<li>servletContext = <span th:text="${#servletContext}"></span></li>
<li>locale = <span th:text="${#locale}"></span></li>
</ul>
<h1>편의 객체</h1>
<ul>
<li>Request Parameter = <span th:text="${param.paramData}"></span></li>
<li>session = <span th:text="${session.sessionData}"></span></li>
<li>spring bean = <span th:text="${@helloBean.hello('Spring!')}"></span></
li>
</ul>
</body>
</html>
Expression Basic Objects
- 타임리프에서 지원하는 Expression Basic Objects를 사용하면, 다음 객체들을 컨트롤러에서 따로
Model
에 추가해서 넘겨주지 않아도 접근이 가능하다. 자주 사용하는 객체들이기 때문에 타임리프에서 기본 객체로 지원한다.${#request}
:HttpServletRequest
객체${#response}
:HttpServletResponse
객체${#session}
:Session
객체${#servletContext}
:ServletContext
객체${#locale}
:Locale
객체
편의 객체
${param}
- 요청 파라미터를 컨트롤러에서 받아서
Model
에 따로 추가해주지 않아도, 이 객체를 이용하면 요청 파라미터에 직접 접근할 수 있다.
- 요청 파라미터를 컨트롤러에서 받아서
${session}
HttpSession
객체에 접근할 수 있다.${#session}
과 다른 객체임에 유의하자.
${@스프링 빈 이름.메소드()}
- Spring bean 이름을 통해 빈에 직접 접근이 가능하다.
- 빈의 메소드도 직접 호출할 수 있다.
'Spring > Spring Boot & Thymeleaf' 카테고리의 다른 글
[Spring Boot & Thymeleaf] 6. URL 링크 (0) | 2022.09.05 |
---|---|
[Spring Boot & Thymeleaf] 5. 유틸리티 객체와 날짜 다루기 (0) | 2022.09.05 |
[Spring Boot & Thymeleaf] 3. 변수, Spring EL (0) | 2022.09.05 |
[Spring Boot & Thymeleaf] 2. text & utext, Escape (0) | 2022.09.05 |
[Spring Boot & Thymeleaf] 1. Thymeleaf 소개 (0) | 2022.09.05 |
댓글