I have a user interface component with the MethodExpression changeListener attribute:
<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>
This changeListener attribute is an optional method expression used as an actionListener in remoteCommand , and I want to display <p:remoteCommand> ONLY IF the changeListener attribute changeListener set.
I tried several ways to check if the attribute is set or not, especially:
<c:if test="#{! empty cc.attrs.changeListener}">
and
<p:remoteCommand rendered="#{cc.attrs.changeListener != null}" />
But I get javax.el.PropertyNotFoundException because it is trying to evaluate the attribute as a property.
How can I determine if an optional attribute of a method is set?
thanks
source share