先上代碼:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>購物車列表</title>
<script type="text/javascript">
function deleteitem(id){
var b=window.confirm("真的刪除嗎?");
if(b){
window.location="${pageContext.request.contextPath }/servlet/DeleteItemServlet?id="+id;
}
}
function clearcart(){
var b=window.confirm("真的清空嗎?");
if(b){
window.location="${pageContext.request.contextPath }/servlet/ClearCartServlet";
}
}
function changeQuantity(input,id,oldvalue){
//alert(input.value);
//檢查數量是不是一個數字,且是正整數
var quantity=input.value;
if(isNaN(quantity)){
alert("請輸入數字");
input.value=oldvalue;
return;
}
if(quantity<0 || quantity!=parseInt(quantity)){
alert("請輸入正整數");
input.value=oldvalue;
return;
}
var b=window.confirm("確定修改嗎?");
if(b){
window.location="${pageContext.request.contextPath }/servlet/ChangeQuantityServlet?id="+id+"&quantity="+quantity;
}
}
</script>
</head>
<body style="text-align:center">
<h1>購物車列表</h1>
<c:if test="${empty(cart.map)}">
你沒有購買任何商品
</c:if>
<c:if test="${!empty(cart.map)}">
<table width="70%" border="1">
<tr>
<td>書名</td>
<td>作者</td>
<td>單價</td>
<td>數量</td>
<td>小計</td>
<td>操作</td>
</tr>
<c:forEach var="entry" items="${cart.map}">
<tr>
<td>${entry.value.book.name }</td>
<td>${entry.value.book.author }</td>
<td>${entry.value.book.price }</td>
<td>
<input type="text" name="quantity" value="${entry.value.quantity }" οnchange="changeQuantity(this,${entry.key},${entry.value.quantity })"/>
</td>
<td>${entry.value.price }</td>
<td><a href="javascript:void(0);" target="_blank" οnclick="deleteitem(${entry.key});return false;">刪除</a></td>
</tr>
</c:forEach>
<tr>
<td colspan="3">總價計</td>
<td colspan="2">${cart.price}元</td>
<td colspan="1">
<a href="javascript:void(0);" target="_blank" οnclick="clearcart();return false;">清空購物車</a>
</td>
</tr>
</table>
</c:if>
</body>
</html>
83行報錯:Syntax error, insert "}" to complete Block
將它放到forEach標籤中間,報錯。
將它放到forEach標籤上面,無錯。
給clearcart()方法添加一個參數,無錯。