0

我有一个 custom UIComponent,当直接从基本 facelet 模板调用时呈现 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。

4

1 回答 1

0

似乎UIComponent'sencodeAll(...)在正常添加到页面时被调用。但是,encodeBegin(...)当组件被添加为复合组件的子组件时,会调用它。我的组件构建是在 中定义的encodeAll(...),在将组件添加为复合组件子组件时未运行。

所以它只是在不同的情况下有所不同。原因,为什么会这样,请参阅有关该问题的问题

于 2010-11-26T10:07:52.217 回答