Manual Spring 2.x
Manual Acegi Security 1.x
Manual de Subproyectos
Integración con otros proyectos
Recetario
propertyeditor
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
- Inicie sesión o regístrese para enviar comentarios
- 434 lecturas