我有一個UI組件與MethodExpression的屬性changeListener
:評估如果MethodExpression的屬性設置(獲得PropertyNotFoundException)
<composite:interface>
<composite:attribute name="changeListener" required="false" method-signature="void actionListener(javax.faces.event.ActionEvent)" />
..
</composite:interface>
<composite:implementation>
<p:remoteCommand name="ajaxOnChange"
update="#{cc.attrs.onChangeUpdate}"
oncomplete="#{cc.attrs.onchange}"
actionListener="#{cc.attrs.changeListener}" />
..
</composite:implementation>
這changeListener
屬性處於remoteCommand
並用作的ActionListener一種可選方法表達如果已設置changeListener
屬性,我只想渲染<p:remoteCommand>
。
我曾嘗試多種方法可檢查屬性是否設置與否,尤其是:
<c:if test="#{! empty cc.attrs.changeListener}">
和
<p:remoteCommand rendered="#{cc.attrs.changeListener != null}" />
但我得到一個javax.el.PropertyNotFoundException因爲它試圖評估該屬性作爲屬性來代替。
如何評估可選方法屬性是否已設置?
感謝