Freemarker:将解释变量分配给其他变量

时间:2013-05-29 09:53:16

标签: freemarker assign

我想将解释变量的结果分配给另一个变量。

Freemarker提供了内置的?interpret来解释包含ftl表达式的变量。见http://freemarker.sourceforge.net/docs/ref_builtins_expert.html#ref_builtin_interpret

如果我这样做

[#if var1?has_content && var1?starts_with(r"${")]
    [#assign interpretedValue = var1?interpret!""]
    [@interpretedValue/]
[/#if]

[@interpretedValue/]将输出解释的值。

但是,我想将解释值的值赋给变量(以便在我的其余代码中执行?has_content之类的操作)。我试过[#assign varInterpretedValue = @interpretedValue],但这不起作用。

这可能吗?

1 个答案:

答案 0 :(得分:2)

是的,就像这样:

[#assign capturedOutput][@(var1!'')?interpret /][/#assign]
${capturedOutput} [#-- Attention! Put this into #noescape if you are inside #escape! --]

请注意,!''后缀必须在?interpret之前,否则它不会执行任何操作(因为?interpret的结果始终为非空)。