【问题标题】:Adding JSF UIComponent as composite component child renders nothing将 JSF UIComponent 添加为复合组件子组件不会呈现任何内容
【发布时间】:2010-11-23 16:16:20
【问题描述】:

我有一个自定义的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。

【问题讨论】:

  • 到目前为止没有回复,所以我认为这可能是一个错误或配置错误。任何建议仍然欢迎!

标签: jsf jsf-2 uicomponents composite-component


【解决方案1】:

好像UIComponentencodeAll(...)在正常添加到页面的时候被调用了。但是,当组件被添加为复合组件的子组件时,会调用 encodeBegin(...)。我的组件构建是在encodeAll(...) 中定义的,在将组件添加为复合组件子组件时未运行。

所以它只是在不同的上下文中有所不同。至于原因,为什么会这样,见question about exactly that

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多