[quote=Hebert Coelho]Apague o p:message e troque por um p:messages (sem configuração alguma).[/quote]Ou melhor, nem apague. Apenas adicione o messages.
Se eu colocar <p:messages> a mensagem de erro aparece só q na parte de cima.
O que eu quero é se o nome estiver errado, a mensagem deve aparecer em frente ele!
Ao invés de vc usar o <p:messages> use o <p:message> (no singular) e coloque logo depois do código do seu componente. Tem um exemplo de utilização no demo do primefaces:
Cara, message é para um componente especifico. Coloque um required no input, aperte submit e veja que a mensagem vai aparecer… Ele mostra erros para aquele componente em específico. O modo que você envia a mensagem de erro, é uma mensagem global.
Sério, o que você quer fazer? Olhe o exemplo do Primefaces passado…
Eu conseguir funcionar em partes. O meu problema agora é aparecer a mensagem correta. No meu teste, a exceção é criada em uma classe própria, depois no ManagedBean eu exibo ela da seguinte forma:
Se na tag do primefaces eu coloco o seguinte argumento “required”, a mensagem que aparece é a do próprio Primefaces informando “value is required”, porém não foi essa frase que eu coloquei na minha classe de exceção.
Se eu colocar requiredMessage="#{alterarFuncionarioBean.context}" a mensagem fica em branco. Pelo meu ponto de vista ele não consegue ler esse dado do context.
Outro teste que eu fiz foi criar uma String e nela atribuir o valor “getMessage()”, porém na página html o erro fica em branco.
[quote=jonatex]Eu conseguir funcionar em partes. O meu problema agora é aparecer a mensagem correta. No meu teste, a exceção é criada em uma classe própria, depois no ManagedBean eu exibo ela da seguinte forma:
Se na tag do primefaces eu coloco o seguinte argumento “required”, a mensagem que aparece é a do próprio Primefaces informando “value is required”, porém não foi essa frase que eu coloquei na minha classe de exceção.
Se eu colocar requiredMessage="#{alterarFuncionarioBean.context}" a mensagem fica em branco. Pelo meu ponto de vista ele não consegue ler esse dado do context.
Outro teste que eu fiz foi criar uma String e nela atribuir o valor “getMessage()”, porém na página html o erro fica em branco.[/quote]Você viu se com o required sua classe é pelo menos chamada?
Cara, não é assim que o JSF funciona… Leia o livro Core JavaServer Faces que ensina isso tudo.
É…você não entendeu o ciclo de vida do JSF. Principalmente no que diz respeito a mensagens. O atributo required verifica, antes mesmo de ir para a classe, se há algum valor válido preenchido lá. Se não houver, ele nem vai à sua classe. Ainda na fase de validação ele volta para a sua tela e exibe a mensagem padrão do JSF. O que você pode fazer é mudar essa mensagem padrão.
Pesquise sobre isso. Explicar tudo aqui é extenso demais. Além do livro que o Hebert recomendou, ainda há alguns lugares bons na internet para você entender sobre validação e mensagens: