Boa tarde, estou com o seguinte erro:
null pointer exception +
Só da este erro se o checkbox não está marcado… se não ele vem com o value do html, que é um S no caso.
segue a classe:
public String getFlag_alt() {
return flag_alt.toUpperCase();
}
public void setFlag_alt(String flag_alt) {
if (flag_alt == null || flag_alt.equals(""))
flag_alt = "N";
this.flag_alt = flag_alt.toUpperCase();
}
segue conteudo na jsp:
Alterar: <INPUT <c:if test="${vendedor.flag_alt == 'S'}">checked="checked"</c:if> value="S" TYPE="checkbox" NAME="vendedor.flag_alt">
ele da o erro logo depois do submit…
se flag_alt é null, o .toUpperCase() dá NullPointerException (provavelmente ele tá no caused by da sua exception…
mude seu getter para:
public String getFlag_alt() {
return flag == null ? null : flag_alt.toUpperCase();
}
Não era melhor esse Flag_alt ser um boolean?
Não usei boolean pois estou fazendo o modulo web de um sistema antigo… e eles usam varchar S ou N no BD… eu poderia mesmo ter usado boolean, mas achei chato ficar tratando…
acredito que não esteja muito errado…
de qualquer forma… não entendi porque o erro estava no get…
pensei que logo após o submit do formulário o vraptor executase o set dos elementos… e lá eu estava tratando.
bem, sua dica resolveu meu problema… obrigado!
[quote=clarel.filho]Não usei boolean pois estou fazendo o modulo web de um sistema antigo… e eles usam varchar S ou N no BD… eu poderia mesmo ter usado boolean, mas achei chato ficar tratando…
acredito que não esteja muito errado…
de qualquer forma… não entendi porque o erro estava no get…
pensei que logo após o submit do formulário o vraptor executase o set dos elementos… e lá eu estava tratando.
bem, sua dica resolveu meu problema… obrigado![/quote]
Só para complementar, o vraptor não setou porque a flag não foi postada. Quando você desmarca uma checkbox e em seguida dá o submit, a checkbox desmarcada é como se não existisse. Até mesmo se você fosse pegar o valor usando diretamente o Request, o vendedor.flag_alt estaria nulo.