[JSF] - dúvidas com h:selectOneMenu

1 resposta
Psycopata

Por acaso eu posso fazer isso:

<h:outputText value="Mes: "/>
                        <h:selectOneMenu id="sMes" value="#{MData.sMesFim}" binding="#{MData.sMesFim}" onchange="javascript:submit()" >
                            <f:selectItems value="#{MData.listaMeses}"/>
                        </h:selectOneMenu>
                        <h:outputText value="Ano: "/>
                        <h:selectOneMenu id="sAno" value="#{MData.sAno}" binding="#{MData.sAno}" onchange="javascript:submit()" >
                            <f:selectItems value="#{MData.listaAnos}" />
                        </h:selectOneMenu>

?

Acontece o seguinte, eu coloquei uma tag mensages e ela me retorna o seginte erro:

* Bean: br.com.bb.sigov.atb.MData, property: sMesFim (no write method for property!)
    * Bean: br.com.bb.sigov.atb.MData, property: sAno (no write method for property!)

Bom, com isso eu cheguei a brilhante conclusão que quando ocorre o submit, o JSF não está setando os meus beans.

Procurando uma solução, eu li que a propriedade binding é usada para ligar o componente da página JSF ao back Bean. Só que quando eu adicionei a propriedade binding no código, aconteceu o seguinte erro:

Alguém sabe qual é oproblema? Pq o h:selectOneMenu não aceita o binding e/ou porque quando o submit é acionado, o JSF não seta o bean?

1 Resposta

marcosbrandao

o selectOneMenu aceita o binding sim. O problema eh que vc está usando o atributo binding igual ao value.
Crie um novo atributo em seu backBean, crie seu get e set e chame ele no value.
Ex:
java.

private HtmlSelectOneMenu sMesFimUI;
private String sMesFim;

gets e sets...

jsp.

<h:selectOneMenu id="sMes" value="#{MData.sMesFim}" binding="#{MData.sMesFimUI}" onchange="javascript:submit()" >
    <f:selectItems value="#{MData.listaMeses}"/>
</h:selectOneMenu>
Criado 9 de julho de 2007
Ultima resposta 9 de jul. de 2007
Respostas 1
Participantes 2