Struts - problemas com <html:checkbox>

5 respostas
B

E ai galera…

coisa simples, ou orelhada, ou algum segredinho q nao me contaram… hehe

ta ocorrendo o seguinte, tenho varios checkbox na minha tela , <html:checkbox

Tenho essa mesma tela de edicao, entao trago informacoes do banco, populo meu formbean, e “posto” na pagina… MAS!!! Os checkboxes nao veem preenchidos!! W.F.!! :x

Alguem teve um problema parecido, ja debuguei e os dados no formbean estao lah, inclusive outras informacoes sao carregadas na tela, mas os checkboxes nao mostra p.n.!!

Coloquei por exemplo:

Codigo:

<html:checkbox name="AtendimentoForm" property="indicadorAboRh" value="991"/>

Entao quando trago a informacao do banco eu “seto” esse valor 991 no formbean…

Alguma orelhada?!?!

Agradeco muito qq ajuda!!
Vlws!!! :!:
T+

5 Respostas

foxpv

cara… eu n sei qto aos html:checkbox, pq aqui eh soh uso html:multibox e funciona certin, eu seto “on” qdo eu quero q fique marcado e “no” quando eu quero q fique desmarcado…

decker

Oi foxpv, então você poderia me dizer como é q vc faz com multibox?

Assim, tem maneira de deixar marcado, sem precisar guardar no banco de dados?

J

Dê uma lida aqui que talvez possa ser útil

http://struts.apache.org/1.2.9/userGuide/struts-html.html

J

Você sabia que quando o checkbox está setado, o struts (action) recebe o conteúdo da propriedade value, senão o struts não recebe esse campo.

A html:multibox é útil caso você tenha vários campos checkbox de mesmo nome, formando um array de campos. Dessa maneira, você pode fazer assim na sua action, para ler o conteúdo, caso o nome do campo checkbox seja indPerfil:

DynaValidatorForm formBean = (DynaValidatorForm) form;   
String[] indPerfil = (String[]) formBean.get("indPerfil");

Esse array de strings só conterá os campos checkbox “setados” na tela, então é de certeza que, caso nenhum tenha sido setado, esse array não terá nada.

Para você apresentar na tela os campos checkbox setados conforme valores do banco, você deverá enviar para o formBean um array.

Caso você tenha no máximo 3 campos checkbox na tela:

String[] valores = new String[3];
int i = 0;

if (campo da base IND_PERFIL_1 contém valor) {
   valores[i++] = "S"; 
}
if (campo da base IND_PERFIL_2 contém valor) {
   valores[i++] = "S"; 
}
if (campo da base IND_PERFIL_3 contém valor) {
   valores[i++] = "S"; 
}

formBean.set("indPerfil",valores);
B

cara… eu n sei qto aos html:checkbox, pq aqui eh soh uso html:multibox e funciona certin, eu seto “on” qdo eu quero q fique marcado e “no” quando eu quero q fique desmarcado…

Valeu cara, era isso mesmo, achei q tivesse que setar a propriedade do check com o valor que deixei fixo na pagina, mas na verdade tenho que colocar “on”. :lol:

Valeu pessoal!!!
Ateh a proxima!!

Criado 20 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 5
Participantes 4