jsf-2 - 嵌套复合组件内部的输出面

标签 jsf-2 composite-component facet

我有一个组件,用于在其子元素周围添加容器。该组件在其他组件中使用没有任何问题。但我希望能够使用这样的方面:

<!-- INTERFACE -->
<cc:interface>
    <cc:attribute name="detailTitle" />
    <cc:facet name="header"/>
</cc:interface>

<!-- IMPLEMENTATION -->
<cc:implementation>
    <li class="mvkcomp listItem listDetailToggle">
        <ezcomp:container>
            <div class="listItemBody">
                <div class="header">
                    <!-- Facet not being rendered -->
                    <cc:renderFacet name="header" />

                    <a href="#">Show/hide #{cc.attrs.detailTitle}</a>
                </div>
                <div class="detail">
                    <cc:insertChildren />
                </div>
            </div>
        </ezcomp:container>
    </li>
</cc:implementation>

但这不会渲染任何内容。如果<cc:renderFacet>它按预期工作已移至 <ezcomp:container> 之外。有没有我没有看到的替代方案,或者我只需移动 liezcomp:container在组件之外使其工作?无论如何,这是首选的选择吗?

哦还有<cc:insertChildren>按预期工作。对我来说,这似乎很奇怪,其中一个会失败,而另一个却不会。

最佳答案

我选择处理这个问题的方法是将包装元素实现为模板。然后,我使用 ui:decorate 在复合组件内输出该模板。原始包装器现在仅在插入其子级之前输出模板。

关于jsf-2 - 嵌套复合组件内部的输出面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629788/

相关文章:

在 Tomcat 7 上首次测试时从 Servlet 空白调用的 JSF 页面

jsf - 如何在 JSF 复合组件中传递 List<Note>?

solr - 如何在solr中分词?

solr - Solr 中任何字段的空值或 null 值的 Facet

ajax - 如何以编程方式将 AjaxBehavior 添加到具有主界面的 UIComponent

jsf-2 - 将参数传递给 JSF 操作

jsf - 子文件夹中的复合组件

javascript - 如何使用 JSF 复合组件使页面上的 id 唯一?

SOLR 分面搜索与 OR 运算符一样返回分面计数

jsf - p :pickList doesn't update the source and target