Estava outro diz brincando com os composite componente do JSF 2. Então refatorei o seguinte trecho
código:
<h:form>
<h:outputLabel for="codes" value="Discount Codes:" />
<h:selectOneMenu id="codes" value="#{products.discountCode}" converter="SelectOneConverter">
<f:ajax event="change" execute="@this" />
<f:selectItems value="#{discountCodes}" var="dc" itemValue="#{dc}" itemLabel="#{dc.code}" />
</h:selectOneMenu>
</h:form>
… no seguinte composite componente:
<cc:interface>
<cc:attribute name="id" />
<cc:attribute name="label" />
<cc:attribute name="value" />
</cc:interface>
<cc:implementation>
<h:outputLabel for="#{cc.attrs.id}" value="#{cc.attrs.label}" />
<h:selectOneMenu id="#{cc.attrs.id}" value="#{cc.attrs.value}" converter="SelectOneConverter">
<cc:insertChildren />
</h:selectOneMenu>
</cc:implementation>
O problema apareceu quando tentei substituir o código original p/ uso do composite componente:
<h:form>
<m:comboBox id="codes" label="Discount Code:" value="#{products.discountCode}">
<f:ajax event="change" execute="@this" />
<f:selectItems value="#{discountCodes}" var="dc" itemValue="#{dc}" itemLabel="#{dc.code}" />
</m:comboBox>
</h:form>
Eu recebo uma exeção disendo q componente “m:comboBox” ñ possui o evento “change”. Então
pesquisando na net eu encontrei a tag “cc:clientBehavior” mas essa tag ñ parece existir.
Alguém tem alguma idéia de como resolver esse problema?