【问题标题】:Freemarker processing of included template包含模板的 Freemarker 处理
【发布时间】:2014-03-05 14:51:56
【问题描述】:

我有 freemaker 模板

<#import "includes/header.ftl" as header>

<h1>${title}</h1>

在 header.ftl 中是

<html>
<head>
    <title>${title}</title>
</head>
<body>

我有非常简单的代码来渲染它

Configuration cfg = new Configuration();
File dir = new File("/usr/cms/data/templates");
cfg.setDirectoryForTemplateLoading(dir);
cfg.setDefaultEncoding("UTF-8");
cfg.setLocale(Locale.US);
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

Map<String, Object> input = new HashMap<String, Object>();
input.put("title","Test title");

Template template = cfg.getTemplate("template.ftl");
Writer writer = new StringWriter();
template.process(input,writer);

模板已处理,但 header.ftl 未包含在 StringWriter 内的字符串中。

如何强制freemarker在处理过程中包含#included文件?

【问题讨论】:

    标签: java freemarker


    【解决方案1】:

    如果你只想包含一个文件,你应该使用#include,而不是#import。例如:

    <#include "includes/header.ftl">
    

    请参阅Freemarker manual

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 2018-05-02
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多