jsf - 在 JSF2 中,如何知道复合组件是否有子组件?

标签 jsf jsf-2 children composite-component

我正在编写一个复合组件,您有一个名为的特殊标签:

<composite:insertChildren />

它在那里插入所有组件的子级。有没有办法知道组件是否有子组件?就像可以在“渲染”属性上使用的 bool 值一样。

最佳答案

您所追求的基本表达式如下:
#{cc.childCount}或更详细地说:
#{component.getCompositeComponentParent(component).childCount}
例如。以下复合组件:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:cc="http://java.sun.com/jsf/composite"
>
    <cc:interface/>

    <cc:implementation>             
        <h:outputText value="Children: #{cc.childCount}" />
    </cc:implementation>    
</html>

用于以下 Facelet:
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"    
    xmlns:test="http://java.sun.com/jsf/composite/test"    
>

    <h:body>

        <test:myCom>
            <h:outputText value="first child" />
            <h:outputText value="second child" />
        </test:myCom>

    </h:body>
</html>

将打印 Children: 2 .

因此#{cc.childCount != 0}会告诉你一个复合组件是否有子组件。

关于jsf - 在 JSF2 中,如何知道复合组件是否有子组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983115/

相关文章:

jsf - PrimeFaces 推送 : subscription to multiple dynamic channels

java - 使用 Java EE Bean 保存表单数据列表并打印 JSF XHTML 数据表中的数据

javascript - 向所有具有 primefaces 工具提示的元素添加样式

kernel - 子级列表 - Sched.h - 内核

jQuery 选择器性能

java - JSF 更新 primefaces 树子级

java - 将变量传递给另一个 View : best practice

jsf - 评估是否设置了 MethodExpression 属性(获取 PropertyNotFoundException)

java - 未在 ViewScoped bean 中设置 viewParam 值

javascript - 当我尝试使用 Children 属性和 offsetWidth 时,为什么我在控制台中收到无法读取属性消息?