动态属性键

时间:2017-10-24 07:54:27

标签: freemarker

我的项目有几个事件,我在站点属性中存储事件ID,并且每个事件页面扩展了相同的核心模板,我想将特定的事件ID分配给一个通用变量。

问题在于,当我尝试在属性键内引入变量引用时,freemarker会返回语法错误。有没有办法解决这个问题?

${sectionName}
//rootSection

<@property key="eventID-rootsection" /> 
//32465

<#assign eventID = <@property key="eventID-${sectionName}" /> >
//syntax error

1 个答案:

答案 0 :(得分:0)

问题在于property被定义为指令(可能是宏),而不是方法(或函数)。您需要一个方法(或函数)版本。然后你的例子看起来像:

${sectionName}
//rootSection

${property("eventID-rootsection")}
//32465

<#assign eventID = property("eventID-${sectionName}")>

要定义property,请执行TemplateMethodModelEx或使用#function指令。