У меня есть странная проблема с моей конфигурацией. Я пытаюсь настроить плитки apache с тимелеафом. Я пытаюсь сделать то же самое, что и у них, documentation page.
Я следующий файл конфигурации:
Spring Boot + Thymeleaf + Apache плитки - не удается найти файл определения
@Configuration
public class ViewConfig {
@Bean
public ViewResolver tilesViewResolver() {
ThymeleafViewResolver vr = new ThymeleafViewResolver();
vr.setTemplateEngine(templateEngine());
vr.setViewClass(ThymeleafTilesView.class);
vr.setCharacterEncoding("UTF-8");
vr.setOrder(Ordered.LOWEST_PRECEDENCE);
return vr;
}
@Bean
public ViewResolver thymeleafViewResolver() {
ThymeleafViewResolver vr = new ThymeleafViewResolver();
vr.setTemplateEngine(templateEngine());
vr.setCharacterEncoding("UTF-8");
vr.setOrder(Ordered.HIGHEST_PRECEDENCE);
// all message/* views will not be handled by this resolver;
vr.setExcludedViewNames(new String[]{"message/*"});
return vr;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addDialect(new TilesDialect());
templateEngine.setTemplateResolver(templateResolver());
return templateEngine;
}
@Bean
public ThymeleafTilesConfigurer tilesConfigurer() {
ThymeleafTilesConfigurer ttc = new ThymeleafTilesConfigurer();
ttc.setValidateDefinitions(false);
ttc.setDefinitions(new String[]{"/templates/tiles-defs.xml"});
return ttc;
}
@Bean
public TemplateResolver templateResolver() {
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setSuffix(".html");
resolver.setPrefix("templates/");
resolver.setTemplateMode("HTML5");
resolver.setCharacterEncoding("UTF-8");
return resolver;
}
}
Я добавил TemplateResolver для моих целей, но удаление не помогает (для имеющих такую же конфигурацию, документации).
Это моя структура папок ресурса:
И проблема в том, что я получил следующее исключение: Caused by: java.io.FileNotFoundException: ServletContext resource [/templates/tiles-defs.xml] cannot be resolved to URL because it does not exist
Самое интересное, что я проверил target/classes
(который находится в пути к классам) и есть файл templates/tiles-defs.xml
. Я попытался пару раз изменить путь определения (также я попытался удалить определение и получить его по умолчанию WEB-INF/tiles.xml
), но результата нет - то же исключение.
Что я делаю неправильно?