no arquivo
com.br.abet.componentelogin.common.messages.messages
coloque os seguintes atributos: #---- Config Geral de Erros Padrao do JSF #-- Campo obrigatório
javax.faces.component.UIInput.REQUIRED=digita a msg aqui #-- Valor especificado não esta entre os valores
javax.faces.validator.NOT_IN_RANGE=digita a msg aqui #-- Valor nao é numerico
javax.faces.validator.DoubleRangeValida-tor.TYPE=digita a msg aqui #-- Valor nao é numerico
javax.faces.validator.LongRangeValida-tor.TYPE=digita a msg aqui #-- Valor tem que ser numerico
javax.faces.component.UIInput.CONVERSION=digita a msg aqui
Bruno muito Obrigado por essas dicas, por exemplo e se eu quiser especificar mais de um REQUIRED como eu faço, porque posso ter senha e usuario e os dois são obrigatórios e com msg diferente especificando o campo que é obrigatorio…
e como colocar na pagina porque eu tenho assim e ele chama o required e se eu quiser chamar o de range em outro campo e não for required ?
Se o layout do seu formulário permitir, você pode colocar uma tag h:message para cada campo. Quando houver erros, todas as mensagens serão exibidas ao lado de onde o erro ocorreu.
Se o layout é mais “apertado”, você pode exibir as mensagens de erro embaixo da tela, e um marcador (asterisco por exemplo) ao lado dos campos que deram erro. (Se precisar de ajuda para fazer isso é só dizer)
public String autenticaUsuario() {
String resultado = "";
if (validaCampos()) {
if ("admin".equals(usuario) && "admin".equals(senha)) {
resultado = "sucessoNaAutenticacao";
} else {
FacesContext.getCurrentInstance().addMessage("invalido",
new FacesMessage("* Usuario e/ou Senha Incorretos!"));
resultado = "falhaNaAutenticacao";
}
}
return resultado;
}
private boolean validaCampos() {
boolean estaVazio = true;
if ("".equals(usuario)) {
FacesContext.getCurrentInstance().addMessage("invalido",
new FacesMessage("* O Campo Usuário deve ser preenchido."));
return false;
} else if ("".equals(senha)) {
FacesContext.getCurrentInstance().addMessage("invalido",
new FacesMessage("* O Campo Senha deve ser preenchido."));
return false;
}
return estaVazio;
}
e na página assim:
<t:messages layout="table" styleClass="fonteDeErros" />
Uma ultima pergunta o que vem a ser este primeiro parametro passado dentro addMessage, eu tenho com pegar ele depois na página ?
Estava olhando os posts desse tópico… que muito me ajudou… mas estou com um problema na hora de visualizar a mensagem na minha tela de login… fiz o que o gamesrod falou, mas apenas aparece uma mensagem default como segue: Erro de validação.
Como faço para mostrar a mensagem adicionada no FacesMessage???
Tópico extremamente antigo, mas resolvi postar uma solução que acho mais simples
Se você colocar no arquivo .properties:
“javax.faces.component.UIInput.REQUIRED=Campo {0} é Obrigatório!”
basta colocar um atributo label no seu input, informar um nome amigável que você quer que apareça na mensagem e configurar o input como obrigatório(required=“true”) e pronto. O que está no label será colocado no lugar de {0}. Agora é só deixar o restante com o JSF e ir tomar um café :lol:
Como você sabe, existem n formas de se fazer validação. Coloquei no post anterior o que eu acho mais simples para se utilizar o required e exibir mensagens dinamicamente. É uma validação sem alterar as entities, só alterando as views e adicionando um arquivo properties para as mensagens(caso já não exista). Mas nada impede que seja utilizado BeanValidation. Aliás, acho BeanValidation bem bacana. Dá para fazer algumas coisas mais complexas, assim como criar padrões e anotações para validar diversos campos com validações customizáveis.