在Spring中将Jade4J配置为默认模板引擎

时间:2018-10-23 11:44:52

标签: java spring jade4j

我最近在Java课程中为我的大学项目选择了Spring框架,为我的模板引擎选择了Jade4J,已经将依赖项放在pom.xml中并安装了该软件包,但是当我调用Jade4J.render("./index.jade", model);时,得到“ ./index.jade(找不到文件)”响应。在github repo中查找Uppon并没有特定的信息,该如何使用将查找模板的目录创建配置类。我什至试图将index.jade文件放在项目中的所有位置(控制器dir,实现main.java的dir,资源dir,webapp dir)。如有任何帮助,我们将不胜感激。

编辑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

2 个答案:

答案 0 :(得分:1)

对于试图查找 Jade4j 信息的新朋友。

在这里您可以找到可以正常运行的示例以及模板引擎https://github.com/jreijn/spring-comparing-template-engines的其他示例

主要问题是,您真的需要Jade4j吗?

最新版本是2017年,他没有一个大社区https://mvnrepository.com/artifact/de.neuland-bfi/jade4j

答案 1 :(得分:0)

您是否签出了Jade4j https://github.com/neuland/spring-jade4j

的Spring集成?

它详细说明了如何使用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>