Eventos de composite componente

0 respostas
dev.rafael

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?

Criado 17 de junho de 2010
Respostas 0
Participantes 1