Ou você faz a verificação trazendo a lista com todos os nomes e mantendo-a viva na sessão ou você faz um select passando como parâmetro o nome e, caso haja retorno, lance o erro.
Flavio_machine
Podem existir pessoas com o mesmo nome, o que não pode acontecer é existirem pessoas com o mesmo cpf ou rg, faz um unique no banco, na hora de salvar se der
exception você escreve uma mensagem para o usuário, http://wiki.apache.org/myfaces/Displaying_Errors/Infos/Warnings_in_JSF_Pages você vai usar a tag h:message ou h:messages do jsf.
finotti
Na minha opinião, esse tipo de validação é específico da sua aplicação e não do framework utilizado. Se você já possui uma camada de serviços, faça essa validação nela.
Imagine a seguinte situação:
Você tem uma aplicação web realizando essa validação via javascript ou no Controller/Managed Bean.
Agora o cliente pede que vc faça uma versão desktop dessa aplicação. Nesse caso, vc teria que reescrever essa regra de validação.
Se a validação for feita na camada de serviços, servirá tanto para aplicações web, desktop, webservices, etc.
R
raf4ever
finotti:
Na minha opinião, esse tipo de validação é específico da sua aplicação e não do framework utilizado. Se você já possui uma camada de serviços, faça essa validação nela.
Isso mesmo.
brunorota
Opa
Valew pelas respostas
Mais no caso eu já tenho a validação no meu BS, ele já lança uma exceção.
Mais no caso, eu gostaria de saber como eu faço pra mostrar uma mensagem no formulário, nome já existente, acho que por falta de conhecimento me expressei mal.
Eu tenho o método, que lança a exceção e eu gostaria de mostrar uma mensagem no formulário caso essa exceção seje lançada.
drsmachado
No método que lança a exceção você precisa colocar, no catch, um return que sinalize o erro à classe que o invoca.
brunorota
Sim, mais quando essa exceção é lançada, o formulario desaparece q aparece apenas a exception.
Eu preciso que apareça no formulário avisando que o nome já existe.
Flavio_machine
Me manda um mp com seu email que te mando uma apostila.
finotti
Uso uma classe “FacesUtil” que tem métodos para exibir mensagens.
if(naoEhValido()){
FacesUtil.exibirMensagemErro("Ja existe um usuario cadastrado com esse nome");
}
brunorota
Eu tenho que colocar alguma anotação nessa classe FacesUtils?
finotti
Não precisa.
Na página vc tem que colocar a tag < h:messages > para exibição das msgs.
Obs: no link da minha assinatura tem um exemplo utilizando a classe FacesUtil