2014-09-12 5 views
0

JSP 태그 내의 JSP 세션 배열 값에 액세스하려고합니다. 나는 다음 코드를 사용하여 JSTL 태그 내에서 그것을 할 수 있었다. JSP 태그 내부에 위의 코드를 사용하려고 할 때JSP 태그 내의 세션 배열 변수에 액세스

<c:forEach var="cartItem" items="${cart.cartItems}" 
      varStatus="counter"> 


    <div class="each_amt_shwtot"> 
     <div class="eachamtshw_nametot" align="left"><h4>${cartItem.partNumber}</h4></div> 
     <div class="eachamtshw_qty"><h4>${cartItem.quantity}</h4></div> 
     <div class="eachamtshw_price"><h4>${cartItem.unitCost} LKR</h4></div> 

    </div> 

</c:forEach> 

하지만 JSP 태그에 함께 <퍼센트 %의 이러한 값에 액세스하고 싶었다는>. 오류가 발생합니다.

UPDATE :

불행하게도, 제공된 답변이 작동하지 않았다.

List<CartItem> or Array[] carItems did not work. 

은 다음 CartBean 파일

package lk.company.app.webapp.beans; 

import java.util.ArrayList; 

public class CartBean { 
private ArrayList alCartItems = new ArrayList(); 
private double dblOrderTotal ; 


public void updateCartItem(String strItemIndex, String strQuantity) { 
    double dblTotalCost = 0.0; 
    double dblUnitCost = 0.0; 
    int iQuantity = 0; 
    int iItemIndex = 0; 
    CartItemBean cartItem = null; 
    try { 
    iItemIndex = Integer.parseInt(strItemIndex); 
    iQuantity = Integer.parseInt(strQuantity); 
    if(iQuantity>0) { 
    cartItem = (CartItemBean)alCartItems.get(iItemIndex-1); 
    dblUnitCost = cartItem.getUnitCost(); 
    dblTotalCost = dblUnitCost*iQuantity; 
    cartItem.setQuantity(iQuantity); 
    cartItem.setTotalCost(dblTotalCost); 
    calculateOrderTotal(); 
    } 
    } catch (NumberFormatException nfe) { 
    System.out.println("Error while updating cart: "+nfe.getMessage()); 
    nfe.printStackTrace(); 
    } 

} 

public void addCartItem(String strModelNo, String strDescription, 
String strUnitCost, String strQuantity) { 
    double dblTotalCost = 0.0; 
    double dblUnitCost = 0.0; 
    int iQuantity = 0; 
    CartItemBean cartItem = new CartItemBean(); 
    try { 
    dblUnitCost = Double.parseDouble(strUnitCost); 
    iQuantity = Integer.parseInt(strQuantity); 
    if(iQuantity>0) { 
    dblTotalCost = dblUnitCost*iQuantity; 
    cartItem.setPartNumber(strModelNo); 
    cartItem.setModelDescription(strDescription); 
    cartItem.setUnitCost(dblUnitCost); 
    cartItem.setQuantity(iQuantity); 
    cartItem.setTotalCost(dblTotalCost); 
    alCartItems.add(cartItem); 
    calculateOrderTotal(); 
    } 

    } catch (NumberFormatException nfe) { 
    System.out.println("Error while parsing from String to primitive types: "+nfe.getMessage()); 
    nfe.printStackTrace(); 
    } 
} 

public void addCartItem(CartItemBean cartItem) { 
    alCartItems.add(cartItem); 
} 

public CartItemBean getCartItem(int iItemIndex) { 
    CartItemBean cartItem = null; 
    if(alCartItems.size()>iItemIndex) { 
    cartItem = (CartItemBean) alCartItems.get(iItemIndex); 
    } 
    return cartItem; 
} 

public ArrayList getCartItems() { 
    return alCartItems; 
} 
public void setCartItems(ArrayList alCartItems) { 
    this.alCartItems = alCartItems; 
} 
public double getOrderTotal() { 
    return dblOrderTotal; 
} 
public void setOrderTotal(double dblOrderTotal) { 
    this.dblOrderTotal = dblOrderTotal; 
} 

protected void calculateOrderTotal() { 
    double dblTotal = 0; 
    for(int counter=0;counter<alCartItems.size();counter++) { 
    CartItemBean cartItem = (CartItemBean) alCartItems.get(counter); 
    dblTotal+=cartItem.getTotalCost(); 

    } 
    setOrderTotal(dblTotal); 
} 

} 

입니다하지만 난하지 JSP 태그 내부에, JSTL 코드를 사용하여 값을 인쇄 할 수 있습니다.

<div class="eachamtshw_price"><h10>${cart.orderTotal} LKR</h10></div> 

내가 예상치 못한 결과를 얻을, 은 내가

String group=session.getAttribute("cart").toString(); 

출력은 "[email protected]"입니다 다음 코드를 사용합니다.

누구나 위의 JSTL에 상응하는 JSP 코드를 제공 할 수 있습니까?

+0

당신을 수행을 통해 당신은 장바구니 항목 목록을 얻을 반복 할 수 위의 코드를 사용하여, 당신은 세션에서 CartItem 목록에 저장되어 있다고 가정하고 여전히 c 태그를 사용합니까? <% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> –

+0

태그를 제거한 경우에도 여전히 Braj

답변

0
<% 
    List<CartItem> cartItemsList = (List<CartItem>) session.getAttribute("cart"); 

    for(CartItem cartItem : cartItemsList) { %> 
     <div class="each_amt_shwtot"> 
     <div class="eachamtshw_nametot" align="left"><h4><%=cartItem.getPartNumber()%></h4></div> 
     <div class="eachamtshw_qty"><h4><%=cartItem.getQquantity()%></h4></div> 
     <div class="eachamtshw_price"><h4><%=cartItem.getUnitCost()%> LKR</h4></div> 
     </div> 
    <% } %> 

은 이에 따라이 코드를 수정할 수 있습니다 만, 나는 그렇게

0
Array[] carItems = (Array[])session.getAttribute("cart"); 


for(CarItem caritem: carItems){ 

%> 
<div class="each_amt_shwtot"> 
     <div class="eachamtshw_nametot" align="left"><h4><%= caritem.getPartNumber() %></h4></div> 
     <div class="eachamtshw_qty"><h4><%= caritem.getQuantity() %></h4></div> 
     <div class="eachamtshw_price"><h4><%= caritem.getUnitCost() %> LKR</h4></div> 

    </div> 

<% }%> 
+0

왜이 솔루션이 원본 질문에 대한 답변에 가장 적합하다고 생각하는지에 대한 간단한 설명을 추가해보십시오. 감사합니다. – m4rtin

+0

오, 감사합니다. – Chaitu

+0

작동하지 않았다. 업데이트 된 질문을 참조하십시오. 데이터 유효성 검사를하고 그 값을 텍스트 파일에 쓰고 싶기 때문에 JSP 태그로 세션 값에 액세스하려고합니다. – user3421325