2017-06-18 67 views
0

我已經使用spring框架創建了一個簡單的購物車項目。我創建了一個按鈕添加到購物車,以便點擊它時將創建該項目的會話。我有以下代碼jsp中彈出Mvc顯示會話

<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; 
} 
} 

我有一個此pr的productServiceImpl類oductDaoImpl

@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 
[email protected] 

如何顯示會話值產品名稱和單價?任何建議都受到歡迎。在此先感謝

+0

在jsp forEach循環中打印'$ {item.product [0] .productName}'和'$ {item.product [0] .unitPrice}'時會得到什麼? – harshavmb

+0

  • $ {item.quantity}
  • $ {} product.productName
  • $ {} product.unitPrice
  • '打印反覆 – harshavmb

    +0

    @harshavmb謝謝 它解決了我的問題 –

    回答

    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> 
    

    希望這有助於!