【问题标题】:Spring Mvc display session in jspjsp中的Spring Mvc显示会话
【发布时间】:2017-11-20 13:13:54
【问题描述】:

我使用 spring 框架创建了一个简单的购物车项目。我创建了一个添加到购物车的按钮,以便在单击时创建该项目的会话。我有以下代码

<button href="/addcart/1">Add to button</button>

这是我的控制器

@RequestMapping("/addcart/{id}")
public ModelAndView goCart(@PathVariable("id")int id,HttpServletRequest request, HttpSession session) {

    List<CartItem> cart = new ArrayList<CartItem>();
    cart.add(new CartItem(productService.findProductCart(id),1));
    session.setAttribute("cart", cart);
    ModelAndView model = new ModelAndView();
    model.setViewName("cart");
    return model;
}

这是我的 CartItem 类

public class CartItem {

    private List<Product> product;
    private int quantity;


    public List<Product> getProduct() {
        return product;
    }
    public void setProduct(List<Product> product) {
        this.product = product;
    }
    public int getQuantity() {
        return quantity;
    }
    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public CartItem(List<Product> product, int quantity) {
        super();
        this.product = product;
        this.quantity = quantity;
    }

    public CartItem() {
        super();
    }


}

这是我的产品类

public class Product {

private int pid;
private String productName;
private int unitPrice;

public int getPid() {
    return pid;
}

public void setPid(int pid) {
    this.pid = pid;
}

public String getProductName() {
    return productName;
}

public void setProductName(String productName) {
    this.productName = productName;
}


public int getUnitPrice() {
    return unitPrice;
}

public void setUnitPrice(int unitPrice) {
    this.unitPrice = unitPrice;
}
}

我有这个 productDaoImpl 的 productServiceImpl 类

@Override
    public List<Product> findProductCart(int id) {
        List<Product> cartProduct = new ArrayList<Product>();
        String sql = "select * from product where pid= " + id;
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        cartProduct = jdbcTemplate.query(sql, new ProductRowMapper());
        return cartProduct;
    }

我在jsp中查看过以下代码

<c:forEach var="item" items="${sessionScope.cart}">
        <li>${item.quantity}</li>
        <li>${item}</li>
    </c:forEach>

这个给

1
com.sparktronix.mvc.domain.CartItem@344e01

如何显示会话值产品名称和单价?欢迎任何建议。提前致谢

【问题讨论】:

  • 在 jsp forEach 循环中打印 ${item.product[0].productName}${item.product[0].unitPrice} 会得到什么?
  • 你可以试试这个&lt;c:forEach var="item" items="${sessionScope.cart}"&gt; &lt;li&gt;${item.quantity}&lt;/li&gt; &lt;c:forEach items = "${item.product}" var="product"&gt; &lt;li&gt;${product.productName}&lt;/li&gt; &lt;li&gt;${product.unitPrice}&lt;/li&gt; &lt;/c:forEach&gt; &lt;/c:forEach&gt;迭代打印
  • @harshavmb 谢谢它解决了我的问题
  • 很高兴知道它对您有所帮助!

标签: spring jsp spring-mvc session


【解决方案1】:

你快到了!您只需从sessionScope 获取product 对象并再次迭代,如下所示。

    <c:forEach var="item" items="${sessionScope.cart}">
      <li>${item.quantity}</li>
        <c:forEach items = "${item.product}" var="product"> 
            <li>${product.productName}</li>
            <li>${product.unitPrice}</li>
        </c:forEach> 
    </c:forEach>

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多