2012-06-26 41 views
2

我有露天社區V4.0.0陣列成露天模板規則腳本

  • 創建內容規則,
  • 選擇執行腳本問題,
  • ,並在腳本調用processTemplate(ScriptNode模板,array args)

如何將數組獲取到模板中?參數只包含鍵值(字符串)。

預先感謝任何建議或幫助

回答

1

我認爲你得到像「預期延長的哈希值。args.array而不是評估,以freemarker.template.SimpleScalar」,對嗎?

如果是這樣,恐怕您無法使用內容規則調用的腳本來處理這個問題,因爲複雜數據類型沒有wrappers,所以這就是隻接受String(和其他標量)的原因。

你有兩個選擇:

  1. 阿爾特露天代碼,它包裝的對象,並將它們發送到processTemplate(),並建立整個系統(也許更多關於這方面的信息,您可以在my older blogpost找到)

  2. 將一個數組放入processTemplate()並在模板中讀取它像一個字符串,然後解析它 - 數組看起來像[val1,val2,val3],所以請參考freemarker documentation for string functions並做類似的事情(醜陋但快速的解決方案):

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

編輯:如果有人有興趣,我只是在Alfresco JIRA

+0

募集有一個bug *是* FreeMarker的複雜數據類型的包裝。像數組支持它。如果您確實將數組作爲字符串使用,那麼Alfresco使用的包裝器會出現問題。 – ddekany

+0

Alfresco中的Freemarker應該可以很好地處理像Arrays和Hashes這樣的複雜類型(很多Alfresco的核心都依賴於它!)。這聽起來像你可能已經發現了一個錯誤,如果是的話[issues.alfresco.com](http://issues.alfresco.com)是報告它的地方,所以它得到修復! – Gagravarr

+0

哈希和數組可以使用標準web腳本正常工作,但不能使用內容規則執行的腳本。我同意這聽起來像一個bug,我會填充JIRA並檢查補丁。 ;-) – shmoula