我用play框架做了一个购物车,但是页面不能取到值

发布于 2021-11-18 16:35:53 字数 3001 浏览 912 评论 4

购物车类:
package controllers;

import play.cache.Cache;
import play.mvc.Controller;
import play.mvc.Scope.Session;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import models.Book;
import models.CartItem;

public class Cart extends Controller {
	public static List<CartItem> cart = null;

	public static void addToCart(long id, Integer quantity) {
		Book book = Book.findById(id);
		if (cart == null) {
			System.out.println("cart == null");
			cart = new ArrayList<CartItem>();
			CartItem item = new CartItem(book, quantity);
			cart.add(item);
			System.out.println(cart);
			renderTemplate("Orders/show.html", cart);
		} else {
			Object items[] = cart.toArray();
			boolean find = false; // 表示是否查找到

			for (int i = 0; i < items.length; i++) {
				CartItem item = (CartItem) items[i];
				// 判断购物车中是否存在要添加的物品
				if (item.book.id.equals(id)) {
					System.out.println("cart.contains(book)");
					item.quantity += quantity;
					cart.add(item);
					System.out.println(cart);
					find = true;
					renderTemplate("Orders/show.html", cart);
					break;
				}
			}
			if (!find) {
				// 添加到购物车
				System.out.println("cart.null(book)");
				CartItem item = new CartItem(book, quantity);
				cart.add(item);
				System.out.println(cart);
				renderTemplate("Orders/show.html", cart);
			}
		}
	}
}


购物车条目类:
 package models;

import play.db.jpa.Model;

public class CartItem extends Model{
	public Book book;
	public Integer quantity;

	public CartItem() {
		// TODO Auto-generated constructor stub
	}
	
	public CartItem(Book book, Integer quantity) {
		this.book = book;
		this.quantity = quantity;
	}
}	

实体类:Book.java

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import play.db.jpa.Model;

@Entity
@Table(name="books")
public class Book extends Model{
	
	public String title;
	public String author;
	public String publisher;
	public Integer type;
	public String description;
	
	public int bookAmount;
	
	@Column(name="image_Url")
	public String imageUrl;
	public Double price;
	
	@Column(name="price_market")
	public Double priceMarket;
	
	@Transient
	public OrderDetail orderDetail;
}


 显示购物车信息的show.html
#{list items:item, as:'cars'}
						<tr>
							<td class="index">1</td>
							<td><a href="../books/show.html?id=1">${cars.book.title}</a></td>
							<td class="orgiprice">¥${cars.book.priceMarket}</td>
							<td>¥${cars.book.price}</td>
							<td><input name="quantity" value="${cars.quantity}"></td>
							<td>¥</td>
							<td class="remove"><a href="#" onclick="return confirm('确定要删除该图书?')">X</a></td>
						</tr>
						#{/list}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

南汐寒笙箫 2021-11-23 17:50:37

其实是我的代码错误, 过了这么久, 想不起来怎么解决了.

醉生梦死 2021-11-23 05:15:23

我很奇怪为什么解决后不能分享下你的方法呢?也许会有其它人遇到同样的问题。 好像中国的程序员在国内外论坛提完问题都这样。

心欲静而疯不止 2021-11-22 13:59:09

已经成功解决了,谢谢

反目相谮 2021-11-19 14:35:04

你也说说是哪个获得不了啊, 
html里面的item是哪里来的?我看不出为什么会获得啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文