Freemarker功能在哪里设置?

时间:2017-09-27 14:06:52

标签: freemarker

之前我没有使用过Freemarker,并继承了一些无法编译的模板。我已经缩小了造成问题的路线:

FreeMarker template error:
For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (wrapper: f.t.SimpleHash):

这个text()函数来自哪里?我理解它试图将第二个字符串注入到第一个字符串中:“Text and More Text”。

这是错误:

text buffer

modernizr-2.6.2.js是唯一导入的javascript。

为什么这一行导致问题以及应该声明此函数的任何想法?

1 个答案:

答案 0 :(得分:0)

它可能来自几个地方:

  • 从数据模型(您传递给Template.process的其中一个参数)

  • 从共享变量中添加到Configuration单例。

  • #include - d模板(或您所在的模板),#function text#assign text = ...(或#global text = ...

  • #import - ed模板通过#global text = ...(极不可能......)

但是一个可能有趣的事情是错误说text确实存在,但它是一个哈希(一个Map - 类似的东西),而不是一个可调用的东西。也许某些被称为text的东西会影响好text${.data_model.text('Text and {0}', 'More Text')}说什么?

你提到了一个JavaScript文件。 FreeMarker与JavaScript无关(它在服务器上运行,在JVM内部。)