<html:checkbox> sempre true

1 resposta
arnishi

Pessoal,

tenho num form um campo do tipo html:checkbox da seguinte forma:

<html:checkbox property="relatorio" style="styleFontePeqNegrito">Marcar para relatorio</html:checkbox>

e num bean que serve de actionform seu respectivo atributo do tipo Boolean

private Boolean relatorio;
public Boolean getRelatorio() {
        return relatorio;
}
public void setRelatorio(Boolean relatorio) {
	this.relatorio = relatorio;
}

Quando envio o formulario com o checkbox desmarcado, eu recebo o bean com o atributo false, e quando marco, ele vem true. até ai blz.
Mas quando eu desmarco o checkbox que estava marcado, ele continua vindo true!!
Alguem tem uma luz aih?

1 Resposta

smarcelo_br

No Struts, os checkbox não são resetados automaticamente. Você deve forçar o boleano que está associado à action para false no método reset() do Form bean. O site abaixo discute sobre este problema.

http://jmatrix.net/dao/case/case.jsp?case=7F000001-D16FC1-100A671370A-71

Isso ocorre, pois, o Struts copia todos os dados da requisição http para o form associado na action. Ele faz isso fazendo a correspondência dos nomes no formulário HTML com os nomes no form bean. Mas, o protocolo http não envia os checkbox desmarcados na requisição, por isso, o struts não sabe que deve marcar o campo do checkbox para false. Então, você mesmo deve fazer isso no metodo reset() do form bean.

Criado 31 de março de 2009
Ultima resposta 31 de mar. de 2009
Respostas 1
Participantes 2