1。实体类package org.mh.fight.entity;public class Flightinfo {
int id;
String start_place;
String end_place;
String time;
double price; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getStart_place() {
return start_place;
} public void setStart_place(String start_place) {
this.start_place = start_place;
} public String getEnd_place() {
return end_place;
} public void setEnd_place(String end_place) {
this.end_place = end_place;
} public String getTime() {
return time;
} public void setTime(String time) {
this.time = time;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
}
}2。购物车package org.mh.fight.util;import org.mh.fight.entity.Flightinfo;public class BuyCar {
Flightinfo flightinfo;
int num;
public Flightinfo getFlightinfo() {
return flightinfo;
}
public void setFlightinfo(Flightinfo flightinfo) {
this.flightinfo = flightinfo;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}3。购物车Map: key为Flightinfo ID(编号) ,value 为buyCar里面是(flightinfo和num),购物车Map用Session来维护 // 根据ID查询出相关的记录
public Flightinfo flightInfoById(String id, HttpSession session) {
ArrayList arrayList = (ArrayList) session.getAttribute("list");
for (int i = 0; i < arrayList.size(); i++) {
Flightinfo flightinfo = (Flightinfo) arrayList.get(i);
if (id.equals(flightinfo.getId())) {
return flightinfo;
}
}
return null;
}
// 购物车
public boolean buyCar(String id, HttpSession session) { try {
boolean flag = false;
Map car = null;
if (session.getAttribute("buycar") != null)
car = (Map) session.getAttribute("buycar");
else
car = new HashMap();
Flightinfo flightinfo = flightInfoById(id, session);
Object[] key = car.keySet().toArray();
for (int i = 0; i < key.length; i++) {
if (id.equals(key[i])) {
BuyCar buyCar = (BuyCar) car.get(key[i]);
buyCar.setNum(buyCar.getNum() + 1);
flag = true;
break;
}
}
if (!flag) {
BuyCar buyCar = new BuyCar();
buyCar.setFlightinfo(flightinfo);
buyCar.setNum(1);
car.put(id, buyCar);
}
session.setAttribute("buycar", car);
return true;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return false;
}
}4。JSP页面中<c:foreach> 迭代<c:forEach items="${sessionScope.buycar}" var="car">
<tr>
<td width="20%" height="40"><div align="center" class="style21">F${car.value.flightinfo.id}</div></td>
<td width="20%" height="40"><div align="center"><span class="style21">${car.value.flightinfo.price}</span></div></td>
<td width="20%" height="40"><div align="center" class="style21">${car.value.flightinfo.time}</div></td>
<td width="20%" height="40"><div align="center" class="style21">${car.value.num}</div></td>
<s:url action="returnTicket.action" var="url">
<s:param name="key">${car.key}</s:param>
</s:url>
<td width="20%" height="40"><div align="center" class="style21"><s:a href="%{url}">退票</s:a></div></td>
</tr>
</c:forEach>
--------------------------------------
${car.value.num} 这里的值可以遍历出来
为什么${car.value.flightinfo.id} 等实体bean不能出来~~~
怎么改这里呢?
int id;
String start_place;
String end_place;
String time;
double price; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getStart_place() {
return start_place;
} public void setStart_place(String start_place) {
this.start_place = start_place;
} public String getEnd_place() {
return end_place;
} public void setEnd_place(String end_place) {
this.end_place = end_place;
} public String getTime() {
return time;
} public void setTime(String time) {
this.time = time;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
}
}2。购物车package org.mh.fight.util;import org.mh.fight.entity.Flightinfo;public class BuyCar {
Flightinfo flightinfo;
int num;
public Flightinfo getFlightinfo() {
return flightinfo;
}
public void setFlightinfo(Flightinfo flightinfo) {
this.flightinfo = flightinfo;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}3。购物车Map: key为Flightinfo ID(编号) ,value 为buyCar里面是(flightinfo和num),购物车Map用Session来维护 // 根据ID查询出相关的记录
public Flightinfo flightInfoById(String id, HttpSession session) {
ArrayList arrayList = (ArrayList) session.getAttribute("list");
for (int i = 0; i < arrayList.size(); i++) {
Flightinfo flightinfo = (Flightinfo) arrayList.get(i);
if (id.equals(flightinfo.getId())) {
return flightinfo;
}
}
return null;
}
// 购物车
public boolean buyCar(String id, HttpSession session) { try {
boolean flag = false;
Map car = null;
if (session.getAttribute("buycar") != null)
car = (Map) session.getAttribute("buycar");
else
car = new HashMap();
Flightinfo flightinfo = flightInfoById(id, session);
Object[] key = car.keySet().toArray();
for (int i = 0; i < key.length; i++) {
if (id.equals(key[i])) {
BuyCar buyCar = (BuyCar) car.get(key[i]);
buyCar.setNum(buyCar.getNum() + 1);
flag = true;
break;
}
}
if (!flag) {
BuyCar buyCar = new BuyCar();
buyCar.setFlightinfo(flightinfo);
buyCar.setNum(1);
car.put(id, buyCar);
}
session.setAttribute("buycar", car);
return true;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return false;
}
}4。JSP页面中<c:foreach> 迭代<c:forEach items="${sessionScope.buycar}" var="car">
<tr>
<td width="20%" height="40"><div align="center" class="style21">F${car.value.flightinfo.id}</div></td>
<td width="20%" height="40"><div align="center"><span class="style21">${car.value.flightinfo.price}</span></div></td>
<td width="20%" height="40"><div align="center" class="style21">${car.value.flightinfo.time}</div></td>
<td width="20%" height="40"><div align="center" class="style21">${car.value.num}</div></td>
<s:url action="returnTicket.action" var="url">
<s:param name="key">${car.key}</s:param>
</s:url>
<td width="20%" height="40"><div align="center" class="style21"><s:a href="%{url}">退票</s:a></div></td>
</tr>
</c:forEach>
--------------------------------------
${car.value.num} 这里的值可以遍历出来
为什么${car.value.flightinfo.id} 等实体bean不能出来~~~
怎么改这里呢?
HttpSession session =request.getSession();
response.setContentType("text/html,charset=gbk");
request.setCharacterEncoding("GBK");
//获得提交的商品信息
String id = request.getParameter("id");
String miaoshu = request.getParameter("miaoshu");
String price = request.getParameter("price");
//存入实体
CDBean cd = new CDBean();
cd.setItemID(Integer.parseInt(id));
cd.setLongDescription(miaoshu);
cd.setCost(Double.parseDouble(price));
//从实体里面取
Object obj =session.getAttribute("cd");
//如果不存在集合则创建集合,并且设置数量为1
if(obj==null){
cd.setMusicNum(1);
Map map= new HashMap();
//将商品的信息存入集合里面,放入map集合里面,让id做为键实体作为值
map.put(Integer.parseInt(id), cd);
session.setAttribute("cd", map); //将集合放入session中
}else{
//如果存在集合则接收
Map map2 = (Map)obj;
if(map2.get(Integer.parseInt(id))!=null){ //当商品存在时给里面在累加数量
CDBean cdbean = (CDBean)map2.get(Integer.parseInt(id));
cdbean.setMusicNum(cdbean.getMusicNum()+1);
map2.put(Integer.parseInt(id),cdbean); //重新将修改后的值添加到集合里面
session.setAttribute("cd",map2);
}else{ //当商品不存在,
cd.setMusicNum(1);
map2.put(Integer.parseInt(id), cd);
session.setAttribute("cd",map2);
}
}
response.sendRedirect("../Cart.jsp");
}