FMPP:如何从 BeanShell 脚本设置 Freemarker 变量
FMPP: How to set a Freemarker variable from a BeanShell script
是否可以在以下情况下设置一个或多个 freemarker 变量:
<#assign test=pp.loadData('eval', '
a="test1";
b="test2";
return "test";')>
并且可以访问 freemarker 脚本中的 a 和 b ?
我想如果不写一个自定义的DataLoader
是做不到的。我说 "guess" 是因为我可能不知道 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}
是否可以在以下情况下设置一个或多个 freemarker 变量:
<#assign test=pp.loadData('eval', '
a="test1";
b="test2";
return "test";')>
并且可以访问 freemarker 脚本中的 a 和 b ?
我想如果不写一个自定义的DataLoader
是做不到的。我说 "guess" 是因为我可能不知道 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}