jfinal模板include和render的问题

之前用freemarker的时候经常在头和尾加一句类似

[#include "${base}/include/adminHeader.ftl" /]

关键在于${base}这个取值,他是可以在字符串中直接被翻译的

但是在jfinal的模板中好像做不到

include只能跟字符串

render可以跟表达式,但是这种字符串内嵌入表达式的做法好像还不支持

我用其他方式当然也能解决,比如我在sharedMethod去扩展,不过字符串内可嵌入表达式的这种方式显然是更灵活

我想问的是,jfinal可以做到像freemarker这种嵌入表达的方式吗

评论区

JFinal

2017-07-26 10:38

做到是很容易的事情,只不过没多少必要,你可以这样:
#render(base + "/include/adminHeader.html")

如果要将对参数中的字符串再做一次表达式求值或者叫渲染,只需要在 render 指令实现的内部用一次:
String finalPara = engine.getTemplateByString(para).renderToString();

实现起来极其简单,但多了一道工序,并且不是每个人都需要,而且用 base + para 也可以实现同样的功能

如果你确实需要,可以自定义指令去扩展

ThreeX

2017-07-28 16:22

说实话,我还没遇到过这个问题呢???如果有,那最好不过了。

热门反馈

扫码入社