动态 属性 键

Dynamic property key

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

问题是当我尝试在 属性 键引用 freemarker returns 语法错误中插入变量时。有什么解决办法吗?

${sectionName}
//rootSection

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

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

问题是 property 被定义为指令(可能是宏),而不是方法(或函数)。您需要它的方法(或函数)版本。那么您的示例将如下所示:

${sectionName}
//rootSection

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

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

要这样定义 property,请实施 TemplateMethodModelEx 或使用 #function 指令。