Jsf + checkbox + String [RESOLVIDO]

4 respostas
rvcabral

salve Galera,

estou com um problema com jsf, já dei uma boa pesquisada mas não encontrei uma solução.

o cenário é o seguinte:

tenho um formulário com um checkbox.

ao submeter o formulário gostaria que o valor do checkbox (uma String qualquer), seja armazenada em um atributo de um bean.

uma coisa que parece simples está dando erro de conversão.

li que precisa de uma Classe converter mas não consegui uma que funcionasse.

fiz um teste com SelectBooleancheckbox e consegui guardar o valor de true ou false.

gostaria disso com SelectManycheckbox.

alguma dica?

meu código que dá erro é mais ou menos assim:

<h:selectManyCheckbox id="status" value="#{nomeBean.valorVariavelString}" >
                <f:selectItem itemValue="valor1" />                       
         </h:selectManyCheckbox>

4 Respostas

sergions

Fala Rafa,

Então cara você têm que definir a String no faces-config.xml. Veja o exemplo abaixo:

<managed-bean>
  <managed-bean-name>nomeBean</managed-bean-name>
  <managed-bean-class>pacote.NomeBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
   <managed-property>
    <property-name>valorVariavelString</property-name>
    <value>#{valorVariavelString}</value>
  </managed-property>
</managed-bean>

Vê se isso resolve.

Bravox

O selectManyCheckbox recebe como valor um array de primitivo , array de objetos ou um List vc não pode usar uma String.

Ex:

no seu mb

private List<String> strings;

// gets e sets

na sua página

<h:selectManyCheckbox value="#{mb.strings}">
				<f:selectItem itemLabel="String 1" itemValue="String 1"/>
				<f:selectItem itemLabel="String 2" itemValue="String 2"/>
				<f:selectItem itemLabel="String 3" itemValue="String 3"/>
			</h:selectManyCheckbox>
sergions

Opa…achei que fosse um selectOneMenu. :cry:

Neste caso String não ia rolar mesmo.

rvcabral

Bravo!!! ou melhor Bravox!!

muito obrigado pela força galera!!!

Criado 18 de maio de 2010
Ultima resposta 18 de mai. de 2010
Respostas 4
Participantes 3