【发布时间】:2013-09-23 16:29:09
【问题描述】:
我有一个带有 MethodExpression 属性的 UI 组件changeListener:
<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 因为它试图将属性作为一个属性来评估。
如何判断是否设置了可选方法属性?
谢谢
【问题讨论】:
标签: jsf jsf-2 conditional composite-component methodexpression