propertyeditor

Enviado por Lorenzo Godino el Vie, 2025-07-20 14:26.

Alguien tiene algún ejemplo de como funciona la clase propertyeditorsupport . Esto no me funciona:

super.initBinder(arg0, binder);
binder.registerCustomEditor(Zonas.class, "usuarioUpdate.zonas",new PropertyEditorSupport() {
public String getAsText() {
return null;
}
public Object getValue() {
return super.getValue();
}
public void setAsText(String text) throws IllegalArgumentException {
setValue(text);
}

public void setValue(Object value) {

if (value != null && !(value instanceof Zonas)) {
CNegocioZona negZonas=new CNegocioZona();
Long idzona = new Long((String) value);
Zonas zonas = negZonas.DevuelveZonaById((idzona));
super.setValue(zonas);
} else
super.setValue(value);
}
});
}

Usuario tiene una relación uno a muchos con Zonas y en la jsp :

spring:bind path="usuarioUpdate.zonas"
input type='hidden' name="idzona" id='idzona' value=" }
}

public Object getValue() {
/*Este no es necesario sobreescribirlo*/
return super.getValue();
}

public void setAsText(String text) throws IllegalArgumentException {
setValue(text);
}

public void setValue(String value) {
/*Aqui lo que regresa es solo texto asi que deberias validar eso*/
if ( ( text != null ) && !text.equals( "" ) ) {
/*Esto seria cmo buscarlo en la BD*/
Concepto value = this.ZonasDAO.getZonas(text);//text seria codigo de zona
/* Otra opcion seria buscarlo en la Session o el Request,
* en ese caso tendrias que pasarle a este property editor esos objetos desde
* el controller*/
if ( null != value ) {
setValue( value );
} else {
/*o podemos dejar el valor anterior*/
throw new IllegalArgumentException( "Las Zonas no existen" );
}
}
}
}

Espero haber ayudado. Saludos

Posted in Enviado por Lorenzo Godino el Vie, 2025-07-20 14:26.