1. 개요
이 튜토리얼에서, 우리는 우리가 봄 부팅 응용 프로그램에서 Thymeleaf을 사용하여 여러 템플릿의 위치를 정의하는 방법을 볼 수 있습니다.
2. 메이븐 종속성
첫째, 우리는 스프링 부팅 스타터 웹 및 스프링 부팅 스타터 thymeleaf의 메이븐 종속성을 추가 할 것입니다 :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
3. 기본 구성
기본적으로 Thymeleaf는 클래스 경로에있는 템플릿 / 디렉토리에있는 템플릿을 찾을 것이다.
우리는 application.properties에서 spring.thymeleaf.prefix 속성이 위치를 구성 할 수 있지만 :
spring.thymeleaf.prefix = 클래스 경로 : / 템플릿 /
이제, 우리는 세부 사항에 템플릿 경로 해상도를 조사하기 위해 컨트롤러를 만듭니다.
@Controller
public class TemplateLocationController {
@RequestMapping("/welcome")
public String sayWelcome() {
return "welcome";
}
}
여기서 우리는 하나의 엔드 포인트가있는 TemplateLocationController 클래스가 있습니다. 이 엔드 포인트 반환 템플릿의 이름으로 환영하고 접두사가 클래스 경로이기 때문에 : /templates/welcome.html : / 템플릿 / 최종 경로는 클래스 경로가된다. 개발 기간 동안,이 템플릿은 SRC에있는 / 주 / 자원 / 템플릿 / welcome.html 페이지 - 우리는 기본 메이븐 폴더 구조를 사용하는 경우.
- 여러 위치 정의
여러 템플릿의 위치를 정의하기를, 우리는 ITemplateResolver 인터페이스를 구현하는 몇 가지 스프링 빈을 정의해야합니다. Thymeleaf는 SpringResourceTemplateResolver 및 ClassLoaderTemplateResolver 같은 ITemplateResolver의 여러 구현 클래스를 제공합니다 :
@Configuration
public class TemplateResolverConfiguration {
@Bean
public SpringResourceTemplateResolver firstTemplateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setPrefix("classpath:/templates/templatelocation/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(0);
templateResolver.setCheckExistence(true);
return templateResolver;
}
@Bean
public ClassLoaderTemplateResolver secondTemplateResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("templates/templatelocation/other/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(1);
templateResolver.setCheckExistence(true);
return templateResolver;
}
@Bean
public ClassLoaderTemplateResolver thirdTemplateResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("templates/templatelocation/another/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(2);
templateResolver.setCheckExistence(true);
return templateResolver;
}
}
여기서 우리는 하나의 SpringResourceTemplateResolver 두 ClassLoaderTemplateResolver 콩을 만들고 있습니다. 초기화하는 동안, 우리는의 setPrefix 방법을 사용하여 다른 경로를 지정하고 있습니다. 또한, 우리는 setOrder 방법을 사용하여 콩의 순서를 정의하고 있습니다.
컨트롤러 방법은 뷰 이름을 반환 할 때 결과, Thymeleaf은 각각 네 개의 서로 다른 위치에서 찾습니다 : / 템플릿 / templatelocation /, / 템플릿 / templatelocation / 기타 /, / 템플릿 / templatelocation / 다른 /과 / 템플릿 /.
5. 요약
이 튜토리얼에서, 우리는 우리가 봄 부팅 응용 프로그램에서 Thymeleaf을 사용하여 여러 템플릿의 위치를 정의하는 방법을 살펴 보았다.
마지막으로, Github에서 모든 예제 소스 코드를 통해 확인하십시오.