FMPP:如何从BeanShell脚本设置Freemarker变量

时间:2015-04-23 15:56:03

标签: freemarker beanshell fmpp

是否可以在以下情况下设置一个或多个freemarker变量:

<#assign test=pp.loadData('eval', '
a="test1";
b="test2";
return "test";')>

并且可以访问freemarker脚本中的a和b?

1 个答案:

答案 0 :(得分:0)

我想如果不编写自定义DataLoader就无法完成。我说&#34;猜测&#34;因为我可能不知道 BeanShell 技巧。我能得到的最接近的是使用return this.namespace;然后使用${test.getVariable('a')}。这当然太冗长了。

更新: 实际上,下面的恐怖事件更加接近:

<#assign test=pp.loadData('eval', '
    a="test1";
    b="test2";

    // This should be factored out into a common function somehow
    ns = this.namespace;
    vars = new HashMap();
    for (name : ns.getVariableNames()) {
      vars.put(name, ns.getVariable(name));
    }
    return vars;
')>

${test.a}