Fiz uma simples aplicação web com os campos: Nome; E-mail; Endereço
Tenho minha classe de ContatoForm com o codigo java e a regra de validação
public ActionErrors validate(ActionMapping mapping, ServletRequest request) {
ActionErrors erros = new ActionErrors();
//verifica nome
if (contato.getNome() == null || contato.getNome().equals("")){
erros.add("nome", new ActionMessage("erro.campoNome"));
}
e meu arquivo MessageResources
erro.campoNome = Preencha o Campo Nome Corretamente
porem ao fazer o teste e deixar de escrever o nome ele aceita normalmrnte e insere no banco " ", sem bloquear e mandar a mensagem.
alguem poderia me dar uma força?
Não vi o resto do seu codigo todo mas… vc tem certeza algo entra nesse if? Vc tem algum log ou debug com um breakpoint nesse lugar? Alias se eu informar um usuario vazio, um usuario com um espaço, com 2 espaços, com tab, etc, vc vai validar como?
Seria bom vc mostrar o resto do codigo, por exemplo vc faz um saveErrors ?como vc faz o forward?
Uma sugestão, ao inves de
erros.add("nome",...);
use
erros.add(ActionErrors.GLOBAL_ERROR,...);
A menos que vc tenha mapeado nos <html:errors /> é claro.
public ActionErrors validate(ActionMapping mapping, ServletRequest request) {
ActionErrors erros = new ActionErrors();
//verifica nome
if (contato.getNome() == null || contato.getNome().equals("")){
erros.add("nome", new ActionMessage("erro.campoNome"));
}