0

Javascript API のメソッド proccessTemplate ( http://wiki.alfresco.com/wiki/4.0_JavaScript_API#Transformation_API )を使用して処理されている freemarker テンプレート内で単純な<#include "anotherFile.ftl"/>を使用しようとしています。特定のノードに対して。

インクルードが気に入らないようです?!

エラーメッセージは次のとおりです

ラップされた例外 (ステータス テンプレートを使用): 04305890 スクリプトの実行に失敗しました 'classpath*:alfresco/extension/templates/webscripts/myPath/myWebscript.get.js': 04305889 テンプレートの処理中にエラーが発生しました 'Error reading included file string:// fooy/foo.ftl'. システム管理者に連絡してください。

処理中のテンプレートと含まれる可能性のあるテンプレートは、Alfresco のリポジトリの外に保存されますが、今のところはその中にあります。Web スクリプトも、リポジトリの外側にあり、Java クラス パスの内側にあります。

同じディレクトリ内にある場合でも ftl を含めようとしましたが、これは機能しません。node.nodeRef を取得しようとしましたが (成功しました)、実際のインクルードは機能しません。

実際の webscripts freemarker 自体に ftl を含めようとしましたが、もちろん node.processTemplate は webscript freemarker テンプレートに渡される前に javascript コントローラーで発生します

インクルードの内容をハードコードして args 連想配列に渡そうとしましたが、期待どおりに機能しませんでした。

さらに調査すると、これはバグであることが示唆されてい ます https://issues.alfresco.com/jira/browse/ALFCOM-3364

誰かがこれを克服した場合は、他の提案を歓迎します。

ありがとう

4

1 に答える 1

1

それがウェブスクリプトの場合、あなたの道は正しくないと思います。

例:webscriptfooがあります。に存在するalfresco/extension/templates/webscripts/org/test/ ので、foo.get.desc.xml、foo.get.js、およびfoo.get.html.ftlがあります。

alfresco / extension / templates / webscripts / org / common/common.ftlに共通のフリーマーカーテンプレートがあります

次に<#include "/org/common/common.ftl" />、をfoo.get.html.ftlフリーマーカーに入れる必要があります。

したがって、パスを設定する必要がありますalfresco/extension/templates/webscripts

于 2012-05-30T08:35:34.533 に答える