好的,两个让你解决问题。我正在建立购物车。我有一个用于产品ID变量的 proizvodid 和用于quanity的 kolicina 。我测试了会话,它将所有内容存储到Korpa bean中并正确显示(注释代码)。 也许它不是你能看到的最快乐的想法,但我想用一个产品ID制作一个字符串,并准备和执行一个声明来展示它们。如果有人有更好的想法我很乐意接受它,但现在我会这样做。
代码是
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(false);
ArrayList<beans.Korpa> korpa;
String akcija = request.getParameter("dodaj");
String proizvodid = request.getParameter("proizvodid");
String kolicina = request.getParameter("kolicina");
String productids = "";
if(session.getAttribute("korpa") == null) {
korpa = new ArrayList<beans.Korpa>();
session.setAttribute("korpa", korpa);
} else {
korpa = (ArrayList<beans.Korpa>)session.getAttribute("korpa");
session.setAttribute("korpa", korpa);
}
if(akcija != null) {
if(akcija.equals("Dodaj u korpu")) {
korpa = (ArrayList<beans.Korpa>)session.getAttribute("korpa");
korpa.add(new Korpa(proizvodid, kolicina));
}
}
//Filling the variable with product ids
for(int i=0; i<korpa.size(); i++) {
if(i != korpa.size() - 1) {
productids += korpa.get(i).getProizvodid() + ", ";
} else {
productids += korpa.get(i).getProizvodid();
}
}
if(productids != null) {
out.println(productids); //testing if ids are received correctly
}
try{
Connection con = DB.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement("SELECT * FROM proizvod WHERE id IN (?)");
ps.setString(1, productids);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
out.println(rs.getString("proizvod")); //I just want to show results for now
}
} catch(Exception e) {
out.println(e.getMessage());
}
问题来自于我运行Web应用程序,将第一个产品添加到购物车并将其拖到购物车中,巫婆向我显示第一个添加的产品ID以及他的名字。我仔细检查一下,转到其他页面,然后回去,它仍在那里。然后我尝试将另一个产品添加到购物车中,并在产品中添加产品ID号,但不显示该产品的名称。
有人能指出我在这里错过了什么吗? 感谢