Tôi có một thành phần giao diện người dùng với một thuộc tính MethodExpression changeListener
:đánh giá nếu MethodExpression thuộc tính được thiết lập (nhận 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
Thuộc tính này là một biểu hiện phương pháp bắt buộc sử dụng như ActionListener trong remoteCommand
và Tôi muốn chỉ hiển thị <p:remoteCommand>
CHỈ NẾU thuộc tính changeListener
đã được đặt.
Tôi đã thử một số cách để kiểm tra xem các thuộc tính được thiết lập hay không, đặc biệt là:
<c:if test="#{! empty cc.attrs.changeListener}">
và
<p:remoteCommand rendered="#{cc.attrs.changeListener != null}" />
Nhưng tôi nhận được một javax.el.PropertyNotFoundException vì nó cố gắng để đánh giá thay vào đó là thuộc tính làm thuộc tính.
Làm cách nào để đánh giá xem thuộc tính phương thức tùy chọn có được đặt hay không?
cảm ơn