jfinal 3.8用扩展freemarker,实现模板的继承, 不生效

配置例子https://badqiu.iteye.com/blog/553583,我在

JFWebConfig

已经配置了参数

cfg.setSharedVariable(, cn.org.rapid_framework.freemarker.directive.BlockDirective());
cfg.setSharedVariable(, cn.org.rapid_framework.freemarker.directive.OverrideDirective());
cfg.setSharedVariable(, cn.org.rapid_framework.freemarker.directive.ExtendsDirective());
cfg.setSharedVariable(, cn.org.rapid_framework.freemarker.directive.SuperDirective());
freemarker版本2.3.28

评论区

JFinal

2019-06-20 16:26

在 JFWebConfig 中添加一个 onStart() 方法, jfinal 在启动时会回调该方法,然后使用下面类似的配置方式,将你的扩展应用上:
FreeMarkerRender.getConfiguration().setSharedVariable(...);

这里的关键就是要在 onStart() 方法中去添加你的配置

sdhery

2019-06-20 16:40

@JFinal 在onStart下加上后还是无生效

sdhery

2019-06-20 22:56

我在spring boot下可以,在JFINAL下不可以

JFinal

2019-06-20 23:51

@sdhery 在 jfinal 中使用 freemarek,唯一有关联的地方在 FreemarkerRender.java ,可以看看这部分的代码,可以看出 jfinal 仅仅是轻微整合了一下 freemarker,并未对其进行过干预

建议单步调试进入 FreemarkerRender 内部,看看你的 .setSharedVariable(...) 配置是不是真的生效了

sdhery

2019-06-25 15:45

找到原因了谢谢

热门反馈

扫码入社