2016-05-12 133 views
0

我的配置有一個奇怪的問題。我試圖用百里香配置apache瓷磚。我試圖做他們在他們的documentation page相同的事情。
我有以下的配置文件:
Spring Boot + Thymeleaf + Apache tiles - 找不到定義文件

@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; 
} 
相關問題