。。。
当然!
第一个
可以改成这样:
public boolean removeGoodsFromCart(Items item) {
return goods.remove(item)!=null;
}
当删除成功时,返回true,删除的键为空时,返回false
第二个问题:
return sum 也可以,因为成员属性设置了totalPrice,所以总价方法中不仅计算总价,最后还调用setTotalPrice()方法,返回this.getTotalPrice()是为了符合规范
public boolean addGoods(items item,int number) {
if(goods.containsKey(item)) {
goods.put(item,goods.get(item)+number);
}else {
goods.put(item, number);
}
我也是这样,请问你解决了吗?
goods.get(i)得到是键所对应的值--数量(number),而上面在定义了map范式指定number为integer
在JSP的章节,https://img.mukewang.com/down/5514c43b0001d59800000000.rar
while 当判断条件为true时会执行括号内内容。it.hasNext()方法表示是否还有下一条记录,是返回true,否false。
我已经解决了,Items中的构造方法忘了初始化。
应该是口误吧,java集合的类型不应该是:“序列、set、和map”么。
it是返回的结果集,这句话是给他遍历,显示结果集里的值
js调试最好在浏览器中,使用F12查看控制台,看一下报的是什么错误。
这是由于总价格进行了包装,访问时,需要用包装后的访问方法,否则直接用sum返回,一是,不规范,二是:不安全
比如map里存了两个键值对{a:1;b:2} , 那么keyset()就是获得键的集合 即{a;b}
将cart.jsp中的以下代码
<!--循环的结束-->
</table>
<div class="total"><span id="total">总计:<%=cart.getTotalPrice() %>¥</span></div>
<%
}
%>
<div class="button"><input type="submit" value="" /></div>
</form>
修改为:
<!--循环的结束-->
</table>
<div class="total"><span id="total">总计:<%=cart.getTotalPrice() %>¥</span></div>
<div class="button"><input type="submit" value="" /></div>
<%
}else{
out.print("<h1>购物车是空的!</h1>");
}
%>
就可以了
数据不是从数据库获得的,没有持久化,所以每次打开都是新的
myeclipse10.0
链接:http://pan.baidu.com/s/1boIGnE3 密码:zhtc
你说的这个问题确实是存在的,跟天猫、京东有些许不一样,一般到了购物车还是可以增加和删除的,你可以在购物车页面添加增加和减少商品的数量,然后把新值覆盖上去的
get(i)就是商品的数量啊,i是对象,key值,Map里面get(i)就得到了value,在这里面就是商品的数量
这样可以通过返回值来判断是否添加/删除成功
iterator是Collection接口的常用方法。
功能:返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象。
用法:配合while使用。说白了我在集合中用过for循环遍历方法代替过iterator的方法。效果一样。但在集合里面和Map中的话还是iterator比较方便。
webapp。需要用到servlet,js,jsp和HTML,CSS,tomcat
我看到你在插入数据库时写的是utf8!!不应该是utf-8吗?进一步期待你解决问题
i是键,goods.get(i)获得的就是数量
package entity; //商品类 public class Items { private int id; // 商品编号 private String name; // 商品名称 private String city; // 产地 private int price; // 价格 private int number; // 库存 private String picture; // 商品图片 //保留此不带参数的构造方法 public Items() { } public Items(int id,String name,String city,int price,int number,String picture) { this.id = id; this.name = name; this.city = city; this.picture = picture; this.price = price; this.number = number; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String getPicture() { return picture; } public void setPicture(String picture) { this.picture = picture; } @Override public int hashCode() { // TODO Auto-generated method stub return this.getId()+this.getName().hashCode(); } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub if(this==obj) { return true; } if(obj instanceof Items) { Items i = (Items)obj; if(this.getId()==i.getId()&&this.getName().equals(i.getName())) { return true; } else { return false; } } else { return false; } } public String toString() { return "商品编号:"+this.getId()+",商品名称:"+this.getName(); } }
这个可以自己写的哇,慢慢敲吧
别忘记了老师之前有做过这个网站的案例...那时酒创建了Items类..其实就是商品类....因此hashmap集合里的就是商品类和一个数量
你这类的名字不一致,我们打的是Items!详情参考Java遇见Html-Jsp篇的最后一章!商品实体类设计,必须先做完这个才可以呦!希望采纳!