JSF UIComponentを複合コンポーネントの子として追加すると、何もレンダリングしません
-
27-09-2019 - |
質問
カスタムがあります UIComponent
, 、ベースフェイステンプレートから直接呼び出されたときにOKをレンダリングします(これはそれを直接の子にすると思います UIComponentBodyTag
)。ただし、複合コンポーネント内で呼び出されると、何も起こりません。例外はありません。他のすべては大丈夫です。
だからこれが機能している間:
<h:body>
<x:myUiComponent />
</h:body>
これはうまくいきません:
<h:body>
<demo:uiComponentWrapper />
</h:body>
uicomponentwrapper.xhtml:
<cc:implementation>
Before [<x:myUiComponent />] After
</cc:implementation>
単にとして印刷します Before [] After
.
私の論理によって、これはうまくいくはずです。何が足りないの? Mojarra 2.0.2を実行しています。
解決
のようだ UIComponent
's encodeAll(...)
通常、ページに追加されたときに呼び出されます。でも、 encodeBegin(...)
コンポーネントが複合コンポーネントの子供として追加されている場合、代わりに呼ばれます。私のコンポーネントの建物は定義されていました encodeAll(...)
, 、コンポーネントを複合コンポーネントの子として追加するときに実行されませんでした。
したがって、それは異なるコンテキストで異なります。理由から、なぜそうなのかを参照してください まさにそれについての質問.
所属していません StackOverflow