首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Spring Boot中使用自定义解析器启用Thymeleaf自动重新加载?

如何在Spring Boot中使用自定义解析器启用Thymeleaf自动重新加载?
EN

Stack Overflow用户
提问于 2020-06-10 18:20:48
回答 2查看 60关注 0票数 0

我不得不定义一个模板解析器来让自定义方言工作,然而这破坏了Thymeleaf模板的自动重新加载。如何重新启用此功能?或者,如何在不定义模板解析器的情况下添加自定义方言?

代码语言:javascript
运行
复制
@Configuration
public class ThymeleafConfig {
    @Bean
    public SpringTemplateEngine templateEngine(TagCacheService tagCacheService) {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();

        ClassLoaderTemplateResolver primaryResolver = new ClassLoaderTemplateResolver();
        primaryResolver.setPrefix("templates/");
        primaryResolver.setSuffix(".html");
        primaryResolver.setTemplateMode(TemplateMode.HTML);
        primaryResolver.setCharacterEncoding("UTF-8");
        primaryResolver.setOrder(0);
        primaryResolver.setCheckExistence(true);

        templateEngine.addTemplateResolver(primaryResolver);
        templateEngine.addDialect(new LayoutDialect());
        templateEngine.addDialect(new SpringSecurityDialect());
        templateEngine.addDialect(new MyDialect(tagCacheService));
        return templateEngine;
    }
}
EN

回答 2

Stack Overflow用户

发布于 2020-06-10 20:35:06

我刚刚检查了org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration的源代码,我看到那里的其他方言是通过将方言的一个实例声明为bean来注册的。所以也许可以试一下?

代码语言:javascript
运行
复制
@Bean
public MyDialect myDialect(TagCacheService tagCacheService) {
  return new MyDialect(tagCacheService);
}
票数 1
EN

Stack Overflow用户

发布于 2020-06-11 20:06:06

若要在自定义模板冲突解决程序上启用自动重新加载模板,请将冲突解决程序的setCacheable属性设置为false。您可以从应用程序属性中读取此值,以使其更加通用。

代码语言:javascript
运行
复制
// Get value from config
@Value("${spring.thymeleaf.cache}")
private boolean enableCache;

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    ClassLoaderTemplateResolver primaryResolver = new ClassLoaderTemplateResolver();
    [ ... ]
    primaryResolver.setCacheable(enableCache); // Set to false to enable reloading
    [ ... ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62301178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档