Как сменить каталог templates в Thymeleaf?

176
12 июля 2022, 07:30

Операционка Windows. В приложении структура каталогов:

java
├─ resources
│  └─ templates
└─ webapp
   ├─ WEB-INF   
   └─ templates

По умолчанию Thymeleaf настроен на

└─ resources
   └─ templates

Как мне сменить каталог templates в Thymeleaf на

└─ webapp
   ├─ WEB-INF   
   └─ templates

Прописал настройки в пропертях:

sping:
  thymeleaf:  
    prefix: classpath:/webapp/templates/

не работает, все равно пишет:

Cannot find template location: classpath:/webapp/templates/
Answer 1

В настройках WebMvcConfigurer нужно переопределить метод configureViewResolvers:

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    @Autowired
    private ServletContext servletContext;
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        ServletContextTemplateResolver templateResolver =
                new ServletContextTemplateResolver(servletContext);
        // Папка с шаблонами относительно папки 'webapp'.
        // Полный путь: '/src/main/webapp/view/'.
        templateResolver.setPrefix("/view/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        ResourceBundleMessageSource messageSource =
                new ResourceBundleMessageSource();
        // Расположение файла 'messages.properties' с константами.
        // Полный путь: '/src/main/resources/messages.properties'.
        messageSource.setBasename("resources/messages");
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver);
        templateEngine.setTemplateEngineMessageSource(messageSource);
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine);
        viewResolver.setOrder(1);
        registry.viewResolver(viewResolver);
    }
}

Метод viewResolver можно вызывать несколько раз для разных папок с шаблонами с разными настройками.

READ ALSO
Как правильно задать blur для тени?

Как правильно задать blur для тени?

Как сделать div c тенью цвета #000000, 40% прозрачности и 20px размытием (blur)?

384
Как сверстать этот блок?

Как сверстать этот блок?

текст, выделенный жирным шрифтомПодскажите как сверстать такой блок без анимации на CSS?

509
Проблема с запросами к полю типа DateTimeField в django orm

Проблема с запросами к полю типа DateTimeField в django orm

Я начал осваивать django ormИспользую django 2

330
JSON-конфиги в тестах

JSON-конфиги в тестах

Подскажите, пожалуйста, есть ли какие-нибудь общепринятые практики для удобного использования конфигов в тестах? Что я имею в виду: есть один...

224