我有一个自定义UIComponent
,当直接从基本facelet模板调用时呈现正常(我想这会使它成为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。
答案 0 :(得分:0)
似乎UIComponent
的{{1}}在正常添加到页面时被调用。但是,当组件作为复合组件的子项添加时,将调用encodeAll(...)
。我的组件构建在encodeBegin(...)
中定义,在将组件添加为复合组件子项时未运行。
所以它在不同的背景下是不同的。出于这个原因,为什么会这样,请参阅question about exactly that。