我正在编写一个复合组件,您有一个名为的特殊标签:
<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/