Thymeleaf Decoupled Template Logic ๐ค
ํ์ฌ index ์์ ์ปดํฌ๋ํธ์ ๋ถ๋ฆฌ๋ฅผ ์ํด์ <header th:replace="~{header :: header}"></header>
๊ตฌ๋ฌธ์ ์์ฑํ๋๋ฐ, ์ ์ฐจ ๋์์ธ์ ์งํํ๋ค๋ณด๋ฉด ์ฌ๋ฌ ๊ตฌ๋ฌธ๋ค์ด ๋ถ์ด์ ์ฝ๋๊ฐ ๋ง์ด ์ปค์ง ์ ์๋ค.
๊ทธ๋์ thymeleaf ๊ตฌ๋ฌธ์ ๋ฐ๋ก ๋ถ๋ฆฌ์์ผ์ ์์ฑํ๊ณ , index๋ฅผ ์์ ๋งํฌ์ ์ํ๋ก ์ ์ง์ํค๋ ๋ฐฉ๋ฒ
์์ ๋งํฌ์ ๊ณผ Thymeleaf ๊ตฌ๋ฌธ์ผ๋ก ๋ฐ๋ก ๋๋จ
์ธํ
์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋กํผํฐ์์ ์ค์ ํ ์ ์๋๋ก ์ ๊ณต๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ธํ ์ ๋ฐ๋ก ์งํํด์ผํจ
ThymeleafConfig
package com.example.springboardproject.config;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConstructorBinding;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
@Configuration
public class ThymeleafConfig {
@Bean
public SpringResourceTemplateResolver thymeleafTemplateResolver(SpringResourceTemplateResolver defaultTemplateResolver, Thymeleaf3Properties thymeleaf3Properties) {
defaultTemplateResolver.setUseDecoupledLogic(thymeleaf3Properties.isDecoupledLogic());
return defaultTemplateResolver;
}
@RequiredArgsConstructor
@Getter
@ConstructorBinding
@ConfigurationProperties("spring.thymeleaf3")
public static class Thymeleaf3Properties {
/**
* Use Thymeleaf 3 Decoupled Logic
*/
private final boolean decoupledLogic;
}
}
์ง์ @ConfigurationProperties
๋ง๋ ๊ฒฝ์ฐ, ์ค์บ์ ์งํํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ main ์ ํ๋ฆฌ์ผ์ด์
ํ์ผ์ @ConfigurationPropertiesScan
์ ์ถ๊ฐํด์ผ ํจ
์ค๋ช ๐โโ๏ธ
์ ๋ฐ์ ์ธ ๋ด์ฉ์ thymeleafTemplateResolver
๋ผ๋ Bean
์ ๋ฑ๋กํ๋ ๊ฒ์ผ๋ก
return ํ์
์ SpringResourceTemplateResolver
โThymeleafAutoConfiguration
์ ๋ถ๋ ์ ๋ ์ฆ, thymeleaf๋ฅผ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์ ๋ฃ์์ ๋ autoconfig ๊ฐ ์๋์ผ๋ก ์กํ
, ๊ทธ ๋ ๋ค์ด๊ฐ๋ ๊ธฐ๋ณธ thymeleaf template resolver.
์ฌ๊ธฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ ! โ setUserDecoupledLogic
๋ฉ์๋์ด๋ฉฐ, ์ด๋ฏธ ์๋ ๊ธฐ๋ฅ์ด์ง๋ง ์ธ๋ถ ํ๋กํผํฐ๋ก ๋๋ฌ๋์ง ์์์ ๋ณด์ด์ง ์๋ ๊ฒ ๋ฟapplication.yaml
์ thymeleaf์ ๋ง์ ์ต์
์ด ์์ง๋ง decoupled ์ต์
์ ๋ํ๋์ง ์๋ ๊ฒ
โ
์ฆ, defaultTemplateResolver
์ ์๋ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ ๋ฆฌํดํ๋ ๊ฒ ~
'์คํ๋ง > ๊ฒ์ํ ๋ง๋ค๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring Security - CSRF(Cross-Site Request Forgery) (0) | 2023.01.23 |
---|---|
JPA - OSIV (Open Session In View) (0) | 2023.01.22 |
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ ๊ทผ ๋ก์ง (0) | 2023.01.18 |
๋๋ฉ์ธ ์ค๊ณ (0) | 2023.01.18 |
API ์ค๊ณํ๊ธฐ (0) | 2023.01.18 |