为了账号安全,请及时绑定邮箱和手机立即绑定

Thymeleaf 3.0 模板引擎,从两个位置获取模板

Thymeleaf 3.0 模板引擎,从两个位置获取模板

摇曳的蔷薇 2023-05-24 16:11:19
我正在设置一个自定义模板引擎,它应该从两个位置处理模板。我如何设置一个可以实现此目的的自定义模板引擎?好的,引擎应该只处理 thymeleaf 模板并从两个不同的位置获取它们。其中之一是通常的 /WEB-INF/templates 但另一个应该在应用程序上下文之外和文件系统中为了论证,让它在 D:/apps/myapp/instances/ 上。对于文件系统,我设法使用 FileTemplateResolver 处理模板,对于内部模板 ClassLoaderTemplateResolver,这不好,因为我读过 Thymeleaf 3.0 使用 SpringResourceTemplateResolver。除了这个问题我还有另一个问题,我无法让引擎处理这两个问题,它可以是一个或另一个基于订单。检查我的代码        @Bean    public TemplateEngine templateEngine() {      SpringTemplateEngine templateEngine = new           SpringTemplateEngine();      templateEngine.setEnableSpringELCompiler(true);      templateEngine.addTemplateResolver(thymeleafTemplateResolver());      templateEngine.addTemplateResolver(databaseTemplateResolver());      return templateEngine;    }    //Resolver for thymeleaf    @Bean    public ThymeleafViewResolver  thymeleafViewResolver() {        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();        viewResolver.setTemplateEngine((ISpringTemplateEngine) templateEngine());        viewResolver.setCharacterEncoding("UTF-8");        viewResolver.setOrder(0);        viewResolver.setApplicationContext(applicationContext);        return viewResolver;    }    //Pulling out methods    @Bean(name = "databaseTemplateResolver")    public ITemplateResolver databaseTemplateResolver() {        var prefix = rootDirectory+Directory.INSTANCES_DIR+File.separator;        System.out.println(prefix);        var templateResolver           = new FileTemplateResolver();        templateResolver.setPrefix(prefix);        templateResolver.setSuffix(".html");        templateResolver.setTemplateMode(TemplateMode.HTML);        templateResolver.setCharacterEncoding("UTF-8");        templateResolver.setOrder(1);        templateResolver.setCacheable(false);        return templateResolver;    }尝试加载内部模板时,文件系统模板会加载得很好。由于某种原因,模板引擎只选择一个解析器而不检查另一个。我怎样才能解决这些问题并使模板引擎处理这两个问题?
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

除非您设置setCheckExistence(true)了一个解析器(首先出现的解析器具有较低的顺序号),否则它会在找不到模板时抛出异常。 



查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信