是否可以在ftl中定义自定义build-ins(名称不再合适)? 我不想让它成为一个函数,而是一个内置函数,因为语义前提。
答案 0 :(得分:4)
这是不可能的,?
语法是为内置函数保留的。 (这意味着将来BTW会发生变化。可悲的是,在遥远的未来,从它之前的积压大小和消除的步伐来判断......)
答案 1 :(得分:1)
为了完整性,这里是Daniel's (@ddekany's) old response。我认为自2010年和2013年以来在这一领域没有太大变化:)
不,?something
语法保留给核心函数以避免名称
添加新核心功能时发生冲突。你可以做
${translate_into_swahili(mytext)}
但是。为此,取决于你的
申请,做其中一个:
创建一个模板,定义您的函数然后包含
普通模板中的#include
或#import
。注意
函数可以使用#function
在纯FreeMarker中实现,或者
在Java中作为TemplateMethodModelEx
- s然后在哪里使用
<#function foo>...</#function> use
<#assign foo=your.class.Name"?new()> instead.
在Java中实现函数TemplateMethodModelEx
和put
它进入数据模型
在Java中实现函数TemplateMethodModelEx
,然后
使其在您初始化FreeMarker
的单个位置上可用
Configuration.setSharedVariable(name, method)