Fórum Validação primefaces #588530
06/11/2017
0
Sou iniciante.
Ao validar um <p:inputtext> nome com a tag <p:validator> verificando se o nome já existe no banco de dados está funcionando normalmente quando crio um novo registro. Mas como uso o mesmo formulário pra editar, ele válida denovo e não deixa salvar. Como contornar essa situação?
Ao validar um <p:inputtext> nome com a tag <p:validator> verificando se o nome já existe no banco de dados está funcionando normalmente quando crio um novo registro. Mas como uso o mesmo formulário pra editar, ele válida denovo e não deixa salvar. Como contornar essa situação?
Esdras Silva
Curtir tópico
+ 0
Responder
Posts
06/11/2017
Deivid Nascimento
você deve alterar seu método no validatorId para ignorar o id do registro que vc vai atualiza,caso nao for isso poste seu codigo @FacesValidator para analise
Responder
Gostei + 0
07/11/2017
Esdras Silva
Assim funcionou. Mas passei o cliente como static da classe controller. Toda vez que der um getCliente na classe controller também seta o a variável static
@Override
public void validate(FacesContext arg0, UIComponent arg1, Object valorTela) throws ValidatorException {
if (valorTela != null) {
ClienteDao cliDao = new ClienteDao();
Cliente c = ClienteController.getClienteFantasia();
List<Cliente> clientes = cliDao.getCliente(valorTela.toString());
if (clientes != null) {
if (!Objects.equals(c.getId(), clientes.get(0).getId())) {
FacesMessage message = new FacesMessage("Nome fantasia já cadastro!");
message.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(message);
}
}
}
}
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)