Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Borrar elemento carrito

Estas en el tema de Borrar elemento carrito en el foro de Java en Foros del Web. Hola Tengo un carrito de la compra en jsp y quiero que mediante un botón se pueda eliminar uno de los productos. Como el carrito ...
  #1 (permalink)  
Antiguo 21/05/2013, 04:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 0
Borrar elemento carrito

Hola

Tengo un carrito de la compra en jsp y quiero que mediante un botón se pueda eliminar uno de los productos.

Como el carrito es un ArrayList de detalles_pedido, pues recojo el id del registro del carrito que quiero borrar y creo un detalle pedido y se lo paso al método que se encarga de borrarlo:

Código Java:
Ver original
  1. datosCarrito.borrarArticulo(registro);

Luego en el bean tengo el siguiente método:

Código Java:
Ver original
  1. public void borrarArticulo(Dp b){
  2.                 this.carrito.remove(b);
  3.     }

Y el problema es que no hace nada. También he probado en vez de pasarle un detalle_pedido entero, a pasarle sólo el id del registro del carrito que quiero borrar y no me funciona tampoco.

A ver si me podéis arrojar algo de luz, porque la verdad es que no sé cómo borrarlo.

Muchas gracias
  #2 (permalink)  
Antiguo 21/05/2013, 04:55
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Borrar elemento carrito

En un List, el método remove(Object) sólo funciona si el objeto es el mismo, no si el contenido del objeto es el mismo.

Si tú haces

Dp registro = new Dp()

y lo rellenas con los mismos datos que un elemento del List, no son el mismo objeto.

Para poder borrar, o modificas los métodos equals y hashcode (hablo de memoria) de Dp para que consideren iguales los objetos que tienen el mismo contenido (o el mismo id), o recorres el list hasta que encuentres un objeto con el mismo id y se lo pasas al método remove.

http://glnconsultora.com/blog/?p=73
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 21/05/2013, 06:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Borrar elemento carrito

Eres genial Xerelo!!! Y muchísimas gracias por contestar tan rápido

Lo hice como tu me has dicho, al principio debí poner algo mal y no me funcionaba pero ahora ya funciona, lo hice así, por si le sirve a alguien:

Código:
for(int i=0; i<carrito.getCarrito().size(); i++){
		if(carrito.getCarrito().get(i).getId_detpedido()==id){
			carrito.borrarArticulo(carrito.getCarrito().get(i));
		}
	}
Y en el bean del carrito:

Código:
	public void borrarArticulo(Dp b){
				this.carrito.remove(b);
	}
Igualmente gracias por el enlace sobre los métodos equals y hashcode, habrá que mirarlo, ya que ni siquiera sé como funcionan.

Última edición por soymari; 21/05/2013 a las 06:21

Etiquetas: jsp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:16.