Solución a “Error de validación: el valor no es válido.” en PrimeFaces

selectone

Llevaba unos días que no lograba solucionar el error de validación de tipo de datos en un formulario trabajando con PrimeFaces. Parecía un error inexplicable, y me estaba dando bastantes quebraderos de cabeza, pues todo estaba aparentemente bien…

errorPor un lado tenía mi clase Municipios.java, mi converterMunicipios.java con sus métodos getAsObject y getAsString, y mi vista xhtml llamando a un componente <p:selectOneMenu> el cual me traía la lista, y por más que intentaba guardar siempre recibía el error de validación => “Error de validación: el valor no es válido”.

Pues bien, si estás en este punto, la solución es sobreescribir los respectivos métodos equals(Object object) y hashCode()

@Override
    public int hashCode() {
        int hash = 0;
	hash += (idMunicipio!= null ? idMunicipio.hashCode() : 0);
	return hash;
	}

@Override
    public boolean equals(Object object) {
        if (!(object instanceof Municipios)) {
            return false;
        }
        Municipio other = (Municipio) object;
        if ((this.idMunicipio == null && other.idMunicipio != null) || (this.idMunicipio != null && !this.idMunicipio.equals(other.idMunicipio))) {
            return false;
        }
        return true;
    }

Como veis es una solución bien sencilla, pero hay que conocerla. Espero que os sirva de ayuda.

Autor: Jorge Bastida Cano

Programador de Software y Apasionado de las nuevas tecnologías.

2 opiniones en “Solución a “Error de validación: el valor no es válido.” en PrimeFaces”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.