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:
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?