任何人都可以帮我解决免费标记模板阅读过程。 我想知道模板中缺少的变量与我从数据库中获取的数据模型相比较。
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}
使用上述代码。在处理数据模型与模板的模板之前想知道。
答案 0 :(得分:0)
模板需要的数据模型变量只会在模板执行时生成。这是因为#if
- s,.vars[dynamicName]
- s等。如果您有${x}
,那么x
并不总是显而易见的指的是数据模型变量,或者此时在另一个范围(如全局变量)中会有x
。
如果你走模板的树,你仍然可以做一个很好的猜测。您可以使用Tempalte.getRootTreeNode()
启动它。正如您将看到它被弃用的API一样,因为不承诺向后兼容,但实际上它不太可能在2.3.x中有更改会破坏现有代码,只要代码试图走树尽可能少的假设。