1、添加到购物车,servlet最后是请求转发到界面,还是重定向到界面。
建议使用重定向。如果是请求转发到界面会引发如下问题:
刚添加完一个商品,
如果此时重新加载界面
、
数量变成2了
2、jsp中的<c:foreach>如何遍历 Cart中的 Map<String, CartItem> map = new HashMap<String, CartItem>();
在Cart中提供 getCollection()方法,
//为 cart.jsp 的c:forch 提供集合
public Collection<CartItem> getCollection(){
return map.values();
}
jsp中 <c:forEach items="${sessionScope.cart.collection }" var="cartItem">
注意:cart.collection 实际上是执行 Cart中的getCollection方法。即使 get+Collection( get+collection首字母变成大写)
3、javascript 提交 from 表单
<script type="text/javascript">
$(function(){
$("#submitBtn").click(function(){
var from1 = document.getElementById("form1");
//可以设置 form1.action= "" form1.method="post"
form1.submit();
});
});
</script>
点击超链接提交form表单
<a href="javascript:document.getElementById('orderForm').submit();">
<img src="${pageContext.request.contextPath}/img/finalbutton.gif" width="204" height="51" border="0" />
</a>
4、超链接形式的删除
<a href="javascript:;" class="delete" id="${cartItem.product.pid }">删除</a>
因为删除时候需要产品id,所以直接在超链接添加 id 属性的值为产品pid
可用 .class 获取该超链接
$(function(){
$(".delete").click(function(){
if(confirm("确认删除")){
window.location.href = "${pageContext.request.contextPath}/CartServlet?method=deleteCartItem&pid="+this.id;
}
});
});