6.2 引擎配置
如果模板中通过 #define 指令定义了 template function,并且希望这些 template function 可以在其它模板中直接调用的话,可以进行如下配置:
- // 添加共享函数,随后可在任意地方调用这些共享函数
- me.addSharedFunction("/view/common/layout.html");
- public void configEngine(Engine me) {
- me.setDevMode(true);
-
- me.setBaseTemplatePath(null);
- me.setSourceFactory(new ClassPathSourceFactory());
-
- me.addSharedFunction("/view/common/layout.html");
- }
通过上面的 me.setSourceFactory(...) 可以推测出来,还可以通过实现ISourceFactory、ISource 扩展出从任何地方加载模板文件的功能,目前已有用户实现 DbSource 来从数据库加载模板的功能。
- ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
- Engine engine = arp.getEngine();
-
- // 上面的代码获取到了用于 sql 管理功能的 Engine 对象,接着就可以开始配置了
- engine.setSourceFactory(new ClassPathSourceFactory());
- engine.addSharedMethod(new StrKit());
-
- me.add(arp);
- }
在 Eclipse 下开发时,可以将 Validation 配置中的 Html Syntax Validator 中的自动验证去除勾选,因为 eclipse 无法识别 JFinal Template Engine 使用的指令,从而会在指令下方显示黄色波浪线,影响美观。后续会提供相关插件给予支持,具体的配置方式见下图: