13

複合コンポーネント内でオプションの属性が渡されたかどうかを確認する必要があります。どうすればこれを達成できますか?

<composite:interface>
    <composite:attribute name="attr1" />
    <composite:attribute name="attr2" required="false" /> <!-- means OPTIONAL -->
</composite:interface>
<composite:implementation>
    <!-- How I can verify here whether attr2 is present or not whenever this component is used? -->
</composite:implementation>

default属性をxxxforに設定する<composite:attribute>ことは、私が探しているものではありません。

4

3 に答える 3

13

#{not empty cc.attrs.attr2}が に評価されるかどうかを確認できtrueます。

たとえばrendered、任意のコンポーネントの属性内:

<composite:implementation>
    <h:panelGroup rendered="#{not empty cc.attrs.attr2}">
        Attribute attr2 is not empty!
    </h:panelGroup>
</composite:implementation>
于 2012-12-04T13:32:14.270 に答える
3

You can check to see if the expression exists using the method:

cc.getValueExpression('someAttribute')

<composite:implementation>
    <h:outputText rendered="#{cc.getValueExpression('attr2') ne null}">
        Attribute attr2 has been passed!
    </h:outputText>
</composite:implementation>
于 2016-02-15T02:10:45.070 に答える