0

Magnolia 4.5.3 では、何も定義されていない場合、親ページのステージを継承しようとしています。Java クラスTemplatingFunctions( cmsfnfreemarker のように公開) は methodinherit(Node content)を提供するので、次のことを試しています。

[#if component??]
    [@cms.component content=component /]
[#else]
    [#assign inheritedContent = cmsfn.inherit(cmsfn.content(state.mainContent.@handle)) /]
    [@cms.component content=inheritedContent /]
[/#if]

しかし、その後エラーが発生します:

The 'content' parameter must be a ContentMapModel and is a StringModel.

(私の例では6行目)

このエラーが発生する理由、つまり、このようなエラーを解決するにはどうすればよいですか?

4

2 に答える 2

1

cmsfn.content(path)問題はa を返すことだと思いますjavax.jcr.Node。したがって、オーバーロードされたcmsfn.inheritメソッドもa を返しますが、 aNode@cms.component期待していinfo.magnolia.jcr.util.ContentMapます。したがって、 を with に変換する必要があるかもしれNodeませContentMapcmsfn.asContentMap(someNode)。(私はマグノリアについて何も知らずにこれを言っています。その API javadoc を見ているだけなので、間違っているかもしれません。)

于 2012-08-23T12:40:45.860 に答える
0

ステージを持つ親ノードを手動で検索する独自の継承メソッドを作成しましたが、最後に Node を返す代わりに を返しnew ContentMap(node)ます。

于 2012-08-27T09:54:23.307 に答える