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