次のような複合 (X) があります。
<composite:interface>
<composite:attribute name="textValue" />
<composite:attribute name="textValueChangeListner"
method-signature="void valueChanged(javax.faces.event.ValueChangeEvent)" />
<composite:implementation>
<ice:inputText
value="#{cc.attrs.textValue}"
valueChangeListener="#{cc.attrs.textValueChangeListner}"/>
JSFページには次のようなものがあります:
<X:iText
textValue="#{cardBean.getCardValue}"
textValueChangeListner="#{cardHandler.cardValueChanged}" />
上記のコードは正常に動作します。ただし、「textValueChangeListner」が JFace ページからコンポジットに渡されない場合は機能しません。すなわち:
<X:iText
textValue="#{cardBean.getCardValue}" />
エラー: [javax.enterprise.resource.webcontainer.jsf.lifecycle] EL 式 '#{cc.attrs.textValueChangeListner}' を使用してページを使用して複合コンポーネントを解決できません: javax.faces.FacesException: 複合コンポーネントを解決できませんEL式「#{cc.attrs.textValueChangeListner}」を使用したページの使用から
私のシナリオでは、ページ開発者が「textValueChangeListner」を複合コンポーネントに提供する場合と提供しない場合があることが必要です。どうすればそれを達成できますか?