使用FreeMarker通过NetSuite“对象”循环

时间:2016-10-19 03:23:46

标签: freemarker netsuite

我正在努力处理NetSuite中“传递”到高级PDF模板的数据的一些方面以及没有“对象浏览器”的事实。我见过,使用:

<#list .data_model?keys as key>
   ${key} = ${.data_model[key]}<br />
</#list>

有数据“对象”:

companyinformation =
message =
nsfont =
preferences =
record =
record@title = Invoice
subsidiary =
subsidiary@title = Subsidiary
user =

无论如何,要深入了解每个对象以查看其属性吗?

1 个答案:

答案 0 :(得分:0)

您可以通过相同的方式转储对象的属性,即通过迭代?keys,因为它不仅适用于Map - s,而且适用于任何值已命名子变量。 (好吧,假设FreeMarker配置中的ObjectWrapper就是这样,但我们现在就希望它。)

因为这将是递归的,所以您需要使用#macro。但要注意无限递归(通常,您至少需要最大深度)。

如果FreeMarker至少为2.3.25,您还可以编写更好的<#list something as key, value>,并支持非字符串键。