freemarker如何用代码将两个模板和为一个

在模板里面是可以用<#include>的,但是如果用程序如何做啊,如何指定加到哪里呢?

4个回答

如果不愿意在FTL中使用Include,那么在JAVA代码中就分别解析两个模板,然后把结果合二为一。

不同LS的:

[code="java"]

Writer writer = new StringWriter();
Template t1 = config.getTemplate(t1Name);
t1.process(model,writer);
System.out.println(writer.toString());

writer = new StringWriter();
Template t2 = config.getTemplate(t2Name);
t2.process(model,writer);
System.out.println(writer.toString());

[/code]

不太明白你的意思,如果你用freemarker,可以写宏指令,这个可能满足模块的需求,如果哦你不用模板,那就只能检测字符串了

单纯 合并 还是比较容易的。

对同一个 Writer处理,可以做到前后合并。

要插入就麻烦了,要先将两个生成String的结果 ,然后用 字符串 占位符
替换 的方式。

[code="java"]
PrintWriter pw =null;
try {
Template tmpl1 = cfg.getTemplate(tmplName1,"UTF-8");
pw = new PrintWriter(workFile,"UTF-8");
tmpl1.process(root, pw);
Template tmpl2 = cfg.getTemplate(tmplName2,"UTF-8");
tmpl2.process(root, pw);
pw.flush();
} finally {
IOUtils.closeQuietly(pw);
}
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问