¿Cómo implementar el conteo de carritos de compras en JSP?
Los carritos de compras son una parte indispensable de los sitios web de comercio electrónico, pero actualmente la mayoría de los carritos de compras solo se pueden usar como exhibición de los productos seleccionados por el cliente, y el cliente no puede extraer el contenido del carrito de compras para satisfacer sus necesidades. sus propias necesidades de procesamiento, lo cual es necesario en algunas actividades de comercio electrónico. La aparición de XML hace que los datos transmitidos en la red sean significativos. Podemos mostrar el contenido de un carrito de compras en diferentes estilos según los diferentes requisitos.
Este artículo analizará en detalle un carrito de compras basado en XML implementado en Java. La siguiente es la estructura interna XML de un carrito de compras que contiene cinco artículos: su elemento raíz es carrito, el elemento total representa la cantidad total en el carrito de compras, cada elemento de artículo representa un producto y los subelementos del artículo están marcados respectivamente, la información específica del producto se puede agregar, modificar o eliminar según la situación real.
Aquí necesitas crear una clase que represente el carrito de compras: XMLCart.java. Es un JavaBean, por lo que contiene un constructor vacío. Esta clase contiene algunas funciones básicas del carrito de compras: generar un carrito de compras vacío, agregar artículos al carrito de compras, eliminar artículos en el carrito de compras, cambiar la cantidad de artículos en el carrito de compras, borrar el carrito de compras, etc. Tiene una variable privada global "XMLDocument myCart privado". myCart se utiliza para almacenar el contenido detallado del carrito de compras. La función básica del carrito de compras es operarlo. De esta forma, la operación del carrito de compras se convierte en la adición y eliminación de subelementos en myCart, y en el cálculo y modificación de los valores de los elementos.
1. Borrar carrito de compras
Al borrar el carrito de compras se crea un carrito de compras vacío. Aquí, el carrito de compras vacío es un documento XML que contiene el elemento raíz carrito y su elemento total. El elemento total es la cantidad total del carrito de compras y su valor inicial es 0. Su formato XML específico es el siguiente:
< ?xml version='1.0' encoding='gb2312'?>
< carrito>
< total>0
< /cart> p>
Convierta esta cadena XML en un documento XML utilizando la función parseString y guárdela en myCart.
El código es el siguiente:
public void vacíoCart() lanza IOException,SAXException{
String stringCart="< ?xml version='1.0'codificación =' gb2312'?> ”+
“< carrito>< total>0< /cart>”;
myCart=parseString(stringCart);
}
2. Agregar un producto
Agregar un producto, es decir, agregar el elemento del artículo entrante al carrito del elemento raíz,
El artículo incluye detalles del producto,
Calcular el valor total al mismo tiempo.
El código es el siguiente:
public void addItemToCart(String stringItem)
lanza IOException,SAXException{
//Convierte elemento de cadena a documento XML
XMLDocument itemAdded=parseString(stringItem);
//Obtenga el nodo del elemento y cópielo
NodeList itemList=itemAdded.getElementsByTagName("item");
Nodo item=itemList.item(0);
Nodo cloneItem=item.cloneNode(true);
//Si el carrito de compras está vacío, construye un nuevo un carrito de compras
if(isCartEmpty()){
myCart.emptyCart();
}
//Si el producto no está en En el carrito de compras, inserte el artículo y calcule el monto total
if(!isItemExist(item,myCart)){
//Obtenga el elemento raíz de myCart y copiar el El nodo del artículo se agrega al fondo
Elemento cartRoot=myCart.getDocumentElement();
Nodo cartNode=cartRoot.appendChild(cloneItem);
calcularTotal(); / /Calcular el importe total
}
}
3. Eliminar un producto
Eliminar un producto, es decir, eliminar el elemento de artículo del producto
del carrito del elemento raíz de myCart según el código del producto,
y recalcular el valor total:
public void moveItemFromCart(String id){
//Obtener el conjunto de nodos cartList en unidades de artículos y el elemento raíz cartRoot
NodeList cartList=myCart .getElementsByTagName("item");
Element cartRoot=myCart.getDocumentElement();
//Encuentra el producto con el código del id seleccionado en el cartList
for(int x=0;x< cartList.getLength();x++){
Nodo itemNode=cartList.item(x);
String idValue=itemNode.getFirstChild() .
getFirstChild().getNodeValue();
//Si lo encuentra, elimine el nodo de cartRoot y salga del bucle
if(idValue. igual(id)){
itemNode=cartRoot.removeChild(itemNode);
break;
}
}
computeTotal(); //Calcular el importe total
}
4. Cambiar la cantidad del producto
Modificar la cantidad en myCart según la cantidad ingresada por el cliente en la página,
y recalcular el total:
addQuantityToCart vacío público (cantidad de cadena) a través
ws
IOException,SAXException{
//Convierte el conjunto pasado de cadenas XML que contienen cantidades de productos en documentos XML
XMLDocument cantidadChanged=parseString( qnty);
//Obtenga el conjunto de nodos de cantidad que contiene la nueva cantidad y el nodo de cantidad establecido en myCart
NodeList cantidadList=quantityChanged.getElementsByTagName("cantidad");
NodeList cartList=myCart.getElementsByTagName("quantity");
// Bucle para cambiar la cantidad de productos
for(int x=0;x< cartList.getLength() ; x++){
//Asigna el valor de la nueva cantidad a la cantidad correspondiente en myCart
String cantidad=quantityList.item(x).getFirstChild().getNodeValue( );
cartList.item(x).getFirstChild().setNodeValue(quantity);
}
computeTotal() //Calcular el importe total
p>}
5. Calcular el importe total
Es decir, calcular el valor del total, donde total=∑(precio*cantidad):
public void ComputeTotal(){
NodeList cantidadList=myCart .getElementsByTagName("cantidad");
NodeList priceList=myCart.getElementsByTagName("precio");
float total=0;
//Importe total acumulado