2017-06-18 20 views
0

私はSpringフレームワークを使用して簡単なショッピングカートプロジェクトを作成しました。カートに追加ボタンを作成したので、クリックするとそのアイテムのセッションが作成されます。私はコードjspのSpring 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; 
} 

これは、これは私のProductクラスである私の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; 
    } 

私は、次のコード

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

とJSPでビューをしたこのセッション値PRODUCTNAMEと単価を表示するには、どのように

1 
[email protected] 

を与えますか?どんな提案も歓迎されます。事前に感謝

+0

jsp forEachループ内で '$ {item.product [0] .productName}'と '$ {item.product [0] .unitPrice}'を印刷するとどうなりますか? – harshavmb

+0

あなたはこの '

  • $ {item.quantity}
  • $ {product.productName}
  • $ {product.unitPrice}
  • は '繰り返し、それは私の問題を解決し ありがとう@harshavmb – harshavmb

    +0

    を印刷する –

    答えて

    1

    あなたはほとんどそこにいる! productオブジェクトをsessionScopeから取得し、以下のようにもう一度繰り返してください。

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

    関連する問題