2016-05-12 4 views
0

У меня есть странная проблема с моей конфигурацией. Я пытаюсь настроить плитки 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 для моих целей, но удаление не помогает (для имеющих такую ​​же конфигурацию, документации).
Это моя структура папок ресурса:
enter image description here



И проблема в том, что я получил следующее исключение: 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), но результата нет - то же исключение.
Что я делаю неправильно?

ответ

0

Вот как я ее решил:

@Bean 
public ThymeleafTilesConfigurer tilesConfigurer() { 
    ThymeleafTilesConfigurer ttc = new ThymeleafTilesConfigurer(); 
    //ttc.setValidateDefinitions(false); 
    ttc.setDefinitions(ThymeleafProperties.DEFAULT_PREFIX + "tiles-defs.xml"); 
    return ttc; 
}