💖💖更多项目资源,最下方联系IT实战课堂✨✨✨✨✨✨
博主拥有多年的T技术研发项目架构和教学经验,CSDN/51CTO/腾讯课堂等平台优质作者、高级讲师,培训机构联合创始人!现专注项目定制Java、小程序、前端网页、Python、App、NodeJs、PHP、微服务、NET等远程部署、售后答疑、文档编写指导等。
最近,很多同学反应,要讲解一个加入商品到购物车的案例。涉及到购物车功能的项目很多,只要是需要下单购买的,都有这个功能。
在下面的示例中,后端使用Spring Boot框架实现了一个简单的RESTful API,通过POST请求将商品添加到购物车,通过GET请求获取购物车中的商品列表。前端使用jQuery库发送AJAX请求,并将表单数据以JSON格式发送到后端。在添加商品到购物车成功后,前端弹出一个提示框。
后端代码:
@RestController
public class CartController {
@Autowired
private CartService cartService;
@PostMapping("/cart/add")
public ResponseEntity<String> addToCart(@RequestBody AddToCartRequest request) {
cartService.addToCart(request.getUserId(), request.getProductId(), request.getQuantity());
return ResponseEntity.ok("Product added to cart successfully.");
}
@GetMapping("/cart/{userId}")
public List<CartItem> getCartItems(@PathVariable String userId) {
return cartService.getCartItems(userId);
}
}
@Service
public class CartService {
@Autowired
private CartRepository cartRepository;
public void addToCart(String userId, String productId, int quantity) {
CartItem cartItem = cartRepository.findByUserIdAndProductId(userId, productId);
if (cartItem == null) {
cartItem = new CartItem(userId, productId, quantity);
} else {
cartItem.setQuantity(cartItem.getQuantity() + quantity);
}
cartRepository.save(cartItem);
}
public List<CartItem> getCartItems(String userId) {
return cartRepository.findByUserId(userId);
}
}
@Repository
public interface CartRepository extends JpaRepository<CartItem, Long> {
CartItem findByUserIdAndProductId(String userId, String productId);
List<CartItem> findByUserId(String userId);
}
public class CartItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String userId;
private String productId;
private int quantity;
public CartItem(String userId, String productId, int quantity) {
this.userId = userId;
this.productId = productId;
this.quantity = quantity;
}
// getters and setters
}
前端代码
<!DOCTYPE html>
<html>
<head>
<title>Add to Cart Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h1>Add to Cart</h1>
<form id="addToCartForm">
<label for="userId">User ID:</label>
<input type="text" id="userId" name="userId"><br>
<label for="productId">Product ID:</label>
<input type="text" id="productId" name="productId"><br>
<label for="quantity">Quantity:</label>
<input type="number" id="quantity" name="quantity"><br>
<input type="submit" value="Add to Cart">
</form>
<script>
$(document).ready(function() {
$("#addToCartForm").submit(function(event) {
event.preventDefault();
var formData = {
userId: $("#userId").val(),
productId: $("#productId").val(),
quantity: $("#quantity").val()
};
$.ajax({
url: "/cart/add",
type: "POST",
contentType: "application/json",
data: JSON.stringify(formData),
success: function(data) {
alert(data);
}
});
});
});
</script>
</body>
</html>
资料获取
💖💖更多项目资源,最下方联系我们✨✨✨IT实战课堂官网✨✨✨