免费标记模板处理想知道数据模型与模板变量缺失

时间:2016-06-24 13:24:25

标签: templates freemarker

任何人都可以帮我解决免费标记模板阅读过程。 我想知道模板中缺少的变量与我从数据库中获取的数据模型相比较。

Configuration cfg = new Configuration(Configuration.VERSION_2_3_24);
cfg.setDirectoryForTemplateLoading(new File(filepath));
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
Map confMap = new HashMap();
confMap.put("user", "Sunil");
Template temp = cfg.getTemplate("template.txt");
OutputStream os = new FileOutputStream(filepath + "\\template.conf");
Writer out = new OutputStreamWriter(os);
temp.process(confMap, out);

template.txt

user=${user}
firstname =${firstname}
lastname =${lastname}

使用上述代码。在处理数据模型与模板的模板之前想知道。

1 个答案:

答案 0 :(得分:0)

模板需要的数据模型变量只会在模板执行时生成。这是因为#if - s,.vars[dynamicName] - s等。如果您有${x},那么x并不总是显而易见的指的是数据模型变量,或者此时在另一个范围(如全局变量)中会有x

如果你走模板的树,你仍然可以做一个很好的猜测。您可以使用Tempalte.getRootTreeNode()启动它。正如您将看到它被弃用的API一样,因为不承诺向后兼容,但实际上它不太可能在2.3.x中有更改会破坏现有代码,只要代码试图走树尽可能少的假设。