首页 > 解决方案 > Freemarker(Responsys RPL 变体)解释和执行表中的键/值对

问题描述

我正在从表中读取一个键/值对,如下所示:

水果:${my_fruit} 在 FOOD 列中。

在我的 Freemarker 代码中,我说:

<#assign my_fruit = "香蕉">

我想以相当于

<#assign fruit = ${my_fruit}> 已执行。

我尝试了很多变体

<#fruit_list = "${FOOD}"!?split(":")>

<#assign fruit_raw = r"<#assign " + "${fruit_list[0]}" + r"='" + "${fruit_list[1]}" + r"'>">

<#assign fruit_int = fruit_raw?interpret>

<@fruit_int?exec/>

谁能告诉我哪里出错了?非常感谢。

标签: freemarkerresponsys

解决方案


这似乎有效:

<#if fruit_list[0]?? && fruit_list[1]??>
<#assign fruit_txt = "<#assign ${fruit_list[0]} = '${fruit_list[1]}'>">
<#assign fruit_raw = 'r"${fruit_txt}"?exec'>
<@fruit_raw?interpret/>
</#if>

推荐阅读