2016-05-12 15 views
0

Ich habe ein seltsames Problem mit meiner Konfiguration. Ich versuche, Apache-Fliesen mit Thymelblättern zu konfigurieren. Ich versuche, die gleichen Dinge zu tun, die sie auf ihrer documentation page sind.
Ich habe folgende Konfigurationsdatei:
Spring Boot + Thymoleaf + Apache Kacheln - kann keine Definitionsdatei finden

@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; 
} 

} 


Ich habe TemplateResolver für meine Zwecke hinzugefügt, aber es hilft nicht (die gleiche Konfiguration wie Dokumentation, die für) zu entfernen.
Dies ist meine Ressource Ordnerstruktur:
enter image description here



Und das Problem ist, dass ich folgende Ausnahme haben: Caused by: java.io.FileNotFoundException: ServletContext resource [/templates/tiles-defs.xml] cannot be resolved to URL because it does not exist
Das interessanteste ist, dass ich target/classes geprüft habe (was in Classpath ist) und dort ist die Datei templates/tiles-defs.xml. Ich habe ein paar Mal versucht, den Definitionspfad zu ändern (auch ich habe versucht, die Definition zu entfernen und vom Standardpfad WEB-INF/tiles.xml zu bekommen), aber kein Ergebnis - die gleiche Ausnahme.
Was mache ich falsch?

Antwort

0

Hier ist, wie ich es gelöst:

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