当前位置: 首页 > 知识库问答 >
问题:

类包中的Thymeleaf模板

司马钱明
2023-03-14

是否有一种方法可以将Thymeleaf模板存储在与类相同的包中而不是参考资料webapp?例如,这样的结构:

com
   example
      myapp
         foo
            Foo.class
            Template.html
         bar
            Bar.class
            Template.html
            OtherTemplate.html

为了实现这一点,我必须如何配置Spring和Thymeleaf?

共有1个答案

袁运锋
2023-03-14

您需要在webmvcconfigure中定义ClassLoaderTemplateResolver

在下面的示例中,我的模板所在的基本包是net。yadaframework。视图(在您的情况下,应该是com.example.myapp)。当我从控制器返回视图时,路径是相对于该包的,因此在您的示例中,“/foo/Template”patterns集合应该包含基本包的子文件夹,因此在您的示例中,“/foo/*”“/bar/*”

@EnableWebMvc
@ComponentScan(basePackages = { "net.yadaframework.views" })
public class YadaWebConfig implements WebMvcConfigurer {

    public ClassLoaderTemplateResolver yadaTemplateResolver() {
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        resolver.setPrefix("net/yadaframework/views");
        /* From the tutorial:
         When several template resolvers are applied, it is recommended to specify patterns 
         for each template resolver so that Thymeleaf can quickly discard those template resolvers 
         that are not meant to resolve the template, enhancing performance. Doing this is not a 
         requirement, but a recommendation
         */
        Set<String> patterns = new HashSet<>();
        patterns.add("/yada/*"); // Start with "yada". Patterns are NOT regexp
        patterns.add("/yadacms/*"); // Start with "yadacms". Patterns are NOT regexp
        resolver.setResolvablePatterns(patterns);
        resolver.setSuffix(".html");
        resolver.setCharacterEncoding("UTF-8");
        resolver.setTemplateMode(TemplateMode.HTML);
        resolver.setCacheable(true);
        resolver.setOrder(10); 
        return resolver;
    }
 类似资料:
  • 本文向大家介绍SpringBoot中的Thymeleaf模板,包括了SpringBoot中的Thymeleaf模板的使用技巧和注意事项,需要的朋友参考一下 一、前言     Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JS

  • 如何在Thymeleaf中显示包含HTML标记的字符串? 所以这段代码: 在这行代码中,它会在浏览器上生成以下内容: 但是我想在浏览器上显示这个: 测试

  • 短版 使用Spring时,如何在Thymeleaf中创建嵌套模板?Spring中的属性中似乎不支持星号符号()。是否有变通/不同的标签可供使用? 长版本 例如,假设我有以下课程: 所以我做了一个Thymeleaf模板: 我们用一个样本

  • 问题内容: 有没有一种方法可以为使用模板的Cython包装的C ++类创建Python包装器?(即完全按照此处显示的内容进行操作,但要使用模板:http : //docs.cython.org/src/userguide/wrapping_CPlusPlus.html#create-cython- wrapper- class)。 我知道融合类型的变通方法(https://groups.googl

  • 我有域类: 但在Thymeleaf我不想直接使用实地日期。通常我可以有一个方法 我可以添加一个名为formattedDate+getters和setters的字段,但在我看来这是非常糟糕的解决方案,因为我只需要格式化日期的值。 你有什么解决这个问题的办法吗?

  • 我在让Thymeleaf按照我想要的方式处理模板方面遇到了一些问题。我以前使用的ApacheTiles很有效,但我认为它在配置/XML中很重要。我有一个优雅的解决方案,我甚至在XML配置中定义我的JavaScripts和Sytlesheets。然而,我想完全远离JSP。我已经看到了Thymeleaf和Facelets的参考资料。我决定试试Thymeleaf,但我在为所有其他页面获取默认布局时遇到了