【问题标题】:Configuring Jade4J as default template engine in Spring在 Spring 中将 Jade4J 配置为默认模板引擎
【发布时间】:2019-05-25 00:05:58
【问题描述】:

我最近为我在 Java 课程上的大学项目选择了 Spring 框架,为我的模板引擎选择了 Jade4J 已经将依赖项放入 pom.xml 并安装了包但是当我调用 Jade4J.render("./index.jade", model); 但我得到“ ./index.jade(找不到文件)”响应。 Uppon 查看github repo 没有具体信息如何使用它将查找模板的目录制作配置类。我什至尝试将 index.jade 文件放在项目中的任何位置(控制器目录、实现 main.java 的目录、资源目录、webapp 目录)。我会很感激任何帮助,如有必要,我会提供任何进一步的信息

编辑 1
将 JadeConfig 类添加到项目中,内容为:

@Bean
public SpringTemplateLoader templateLoader() {
    SpringTemplateLoader templateLoader = new SpringTemplateLoader();
    templateLoader.setBasePath("/templates/");
    templateLoader.setEncoding("UTF-8");
    templateLoader.setSuffix(".jade");
    return templateLoader;
}

@Bean
public JadeConfiguration jadeConfiguration() {
    JadeConfiguration configuration = new JadeConfiguration();
    configuration.setCaching(false);
    configuration.setTemplateLoader(templateLoader());
    return configuration;
}

@Bean
public ViewResolver viewResolver() {
    JadeViewResolver viewResolver = new JadeViewResolver();
    viewResolver.setConfiguration(jadeConfiguration());
    return viewResolver;
}

我的索引控制器有以下功能:

@GetMapping(value = "/")
public String greeting() throws IOException {
    Map<String, Object> model = new HashMap<String, Object>();
    model.put("title", "Index Page");
    String html = Jade4J.render("./index.jade", model);
    return html;
}

最后的模板 index.jade 路径是 src\main\webapp\templates\index.jade

【问题讨论】:

    标签: java spring jade4j


    【解决方案1】:

    对于尝试查找 Jade4j 信息的新人。

    在这里你可以找到没有错误的例子和模板引擎的其他例子https://github.com/jreijn/spring-comparing-template-engines

    主要问题是你真的需要 Jade4j 吗?

    最后一次发布是 2017 年,他没有大社区https://mvnrepository.com/artifact/de.neuland-bfi/jade4j

    【讨论】:

      【解决方案2】:

      您是否查看了 Jade4j 的 Spring 集成 https://github.com/neuland/spring-jade4j

      它详细介绍了如何使用 Spring Beans 配置 Jade4j。

      <bean id="templateLoader" class="de.neuland.jade4j.spring.template.SpringTemplateLoader">
          <property name="basePath" value="/WEB-INF/views/" />
      </bean>
      
      <bean id="jadeConfiguration" class="de.neuland.jade4j.JadeConfiguration">
          <property name="prettyPrint" value="false" />
          <property name="caching" value="false" />
          <property name="templateLoader" ref="templateLoader" />
      </bean>
      
      <bean id="viewResolver" class="de.neuland.jade4j.spring.view.JadeViewResolver">
          <property name="configuration" ref="jadeConfiguration" />
          <!-- rendering nice html formatted error pages for development -->
          <property name="renderExceptions" value="true" />
      </bean>
      

      【讨论】:

      • 使用 Spring JavaConfig 选项来实现 bean 但仍然出现相同的错误,我对描述进行了编辑;提供了我项目中的一些代码。这个答案已经很有帮助,因为您提供了如何配置 Spring
      • 你试过只用 Jade4J.render("index.jade", model);
      • 是的,我尝试了所有可能性索引 index.jade ./index.jade 也将 dir 模板放入主资源中
      猜你喜欢
      • 2012-11-11
      • 2016-05-19
      • 1970-01-01
      • 2014-08-01
      • 2017-06-16
      • 2011-01-18
      • 1970-01-01
      • 2018-11-14
      • 2011-05-11
      相关资源
      最近更新 更多