2

Alfresco Community v4.0.0 について質問があります

  • コンテンツルールを作成し、
  • 実行スクリプトを選択し、
  • スクリプト呼び出しで processTemplate(ScriptNode template, array args)

テンプレートに配列を取得するにはどうすればよいですか? Args には、キーと値 (文字列) のみが含まれます。

アドバイスやヘルプを事前にありがとう

4

1 に答える 1

1

「予想される拡張ハッシュ。args.array が freemarker.template.SimpleScalar の代わりに評価される」のようなものを取得していると思いますが、そうですか?

その場合、複雑なデータ型のラッパーがないため、コンテンツ ルールから呼び出されたスクリプトでこれを機能させることはできません。これが、文字列 (およびその他のスカラー) のみが受け入れられる理由です。

次の 2 つの選択肢があります。

  1. オブジェクトをラップして processTemplate() に送信し、システム全体を構築する alfresco コードを変更します (これに関する詳細については、私の古いブログ投稿を参照してください) 。

  2. 配列を processTemplate() に入れ、テンプレートでそれを文字列のように読み取ってから解析します - 配列は [val1,val2,val3] のように見えるので、文字列関数については freemarker のドキュメントを参照し、このようなことを行います (醜いが高速な解決策) ):

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

編集: 興味のある方は、 Alfresco JIRAでバグを報告しました

于 2012-06-26T13:31:01.667 に答える