【问题标题】:How to ignore empty attributes within a composite component?如何忽略复合组件中的空属性?
【发布时间】:2026-02-06 11:55:01
【问题描述】:

如何忽略复合组件的空属性? 示例:

<cc:interface>
<cc:attribute name="styleClass" />
<cc:attribute name="value" />
</cc:interface>

<cc:implementation>
<h:inputText styleClass="#{cc.attrs.styleClass}"
    value="#{cc.attrs.value}">
    <cc:insertChildren />
</h:inputText>
</cc:implementation>

当我使用这个组件时:

<my:inputText />

它是这样渲染的:

<input type="text" class="" />

如何在没有空类属性的情况下获得输出?

【问题讨论】:

    标签: jsf attributes jsf-2 composite-component


    【解决方案1】:

    你可以这样使用它:

    <my:inputText styleClass="myClass"/>
    

    或者你可以在你的组件中设置默认值:

    <cc:attribute name="styleClass" default="myClass"/>
    

    如果不设置styleClass,则设置为默认。

    【讨论】: