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?
Esdras Silva

Esdras Silva

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar