2

我有一个关于 Alfresco Community v4.0.0 的问题

  • 我创建内容规则,
  • 选择执行脚本,
  • 并在脚本调用 processTemplate(ScriptNode template, array args)

如何将数组放入模板?Args 只包含键值(字符串)。

提前感谢您的任何建议或帮助

4

1 回答 1

1

我认为您会得到类似“预期的扩展哈希。args.array 被评估为 freemarker.template.SimpleScalar”,对吗?

如果是这样,恐怕您无法使用从内容规则调用的脚本来实现此功能,因为没有复杂数据类型的包装器,所以这就是只接受字符串(和其他标量)的原因。

你有两个选择:

  1. Alter alfresco 代码,它包装对象并将它们发送到 processTemplate() 并构建整个系统(也许更多信息可以在我的旧博文中找到)

  2. 将数组放入 processTemplate() 并在模板中像字符串一样读取它然后解析它 - 数组看起来像 [val1,val2,val3],因此请参阅freemarker 文档以获取字符串函数并执行类似的操作(丑陋但快速的解决方案):

    <#list args.array?split(",") as value>
        hereRemoveFirstAndLastSquareBracketFrom(${value});
    </#list>
    

编辑:如果有人感兴趣,我刚刚在Alfresco JIRA中提出了一个错误

于 2012-06-26T13:31:01.667 回答