我有一个关于 Alfresco Community v4.0.0 的问题
- 我创建内容规则,
- 选择执行脚本,
- 并在脚本调用 processTemplate(ScriptNode template, array args)
如何将数组放入模板?Args 只包含键值(字符串)。
提前感谢您的任何建议或帮助
我有一个关于 Alfresco Community v4.0.0 的问题
如何将数组放入模板?Args 只包含键值(字符串)。
提前感谢您的任何建议或帮助
我认为您会得到类似“预期的扩展哈希。args.array 被评估为 freemarker.template.SimpleScalar”,对吗?
如果是这样,恐怕您无法使用从内容规则调用的脚本来实现此功能,因为没有复杂数据类型的包装器,所以这就是只接受字符串(和其他标量)的原因。
你有两个选择:
Alter alfresco 代码,它包装对象并将它们发送到 processTemplate() 并构建整个系统(也许更多信息可以在我的旧博文中找到)
将数组放入 processTemplate() 并在模板中像字符串一样读取它然后解析它 - 数组看起来像 [val1,val2,val3],因此请参阅freemarker 文档以获取字符串函数并执行类似的操作(丑陋但快速的解决方案):
<#list args.array?split(",") as value>
hereRemoveFirstAndLastSquareBracketFrom(${value});
</#list>
编辑:如果有人感兴趣,我刚刚在Alfresco JIRA中提出了一个错误