3

次のようないくつかの一般的なメタデータをビューに追加する複合コンポーネントを作成したいと考えています。

<viewController:metadata controller="orderController"/>

コンポーネント:

<composite:interface>
  <composite:attribute name="controller" />
</composite:interface>

<composite:implementation>

  <f:metadata>
    <f:viewParam name="id" value="#{cc.attrs.controller.id}" />
    <f:event type="preRenderView"
      listener="#{cc.attrs.controller.initConversation}" />
  </f:metadata>

</composite:implementation>

ボタンバーをすべてのビューに追加するために同様のことを行い、正常に動作しますが、f:metadata では不可能のようです。

私は正しいですか、それとも私のコードに何か問題がありますか?

ありがとう

4

1 に答える 1

4

これは不可能です。<f:metadata>ビュー ID に関連付けられたビューに移動する必要があります。タグのドキュメントも参照してください(強調鉱山):

このビューのメタデータ ファセットを宣言します。これは の子である必要があります<f:view>このタグは、指定された viewId の最上位 XHTML ファイル内、またはテンプレート クライアント内に存在する必要がありますが、 template 内には存在しませんUIPanel実装では、ファセットの子が 1 つしかない場合でも、ファセットの直接の子が であることを保証する必要があります。実装では、の id を記号定数UIPanelの値に設定する必要があります。UIViewRoot.METADATA_FACET_NAME

于 2012-08-15T15:15:51.497 に答える