봄 부팅을 사용하여 Thymeleaf 여러 템플릿 위치

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 페이지 - 우리는 기본 메이븐 폴더 구조를 사용하는 경우.

  1. 여러 위치 정의
    여러 템플릿의 위치를 정의하기를, 우리는 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에서 모든 예제 소스 코드를 통해 확인하십시오.

추천

출처www.cnblogs.com/xidianzxm/p/11606743.html