很抱歉打断你们所有人。
我对会话有疑问。
在我的情况下,我需要检查会话是否存储了值。
如果会话不为null,我想循环该值以进行比较。
现在,我只使用if语句检查书籍ID的最后一条记录是否重复。
但我不知道如何使用循环检查是否有任何重复的书籍ID。
有人会为我提供一些建议来实现这个目标吗?
非常感谢。
这是我的源代码:
<%@ page contentType="text/html; charset=Big5"%>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.lang.*"%>
<%!
public class BookInfo {
private String id;
private String name;
private int count;
public BookInfo(String id, String name, int count) {
this.id = id;
this.name = name;
this.count = count;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BookInfo other = (BookInfo) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
public String toString()
{
return " ISBN is " + getId() + " , book title is " + getName() + " & order no. is " + getCount() + "\n";
}
}
%>
<%
try {
List MyCart = (List) request.getSession().getAttribute("MyCart");
if (MyCart == null) {
MyCart = new ArrayList();
}
BookInfo book = new BookInfo("2", "C++ langauge", 1);
//BookInfo book = new BookInfo("2", "java", 1);
if (!MyCart.contains(book)) {
MyCart.add(book);
} else {
//how to loop the value stored in session?
BookInfo tmpBook = (BookInfo) MyCart.get(MyCart.indexOf(book));
tmpBook.setCount(tmpBook.getCount() + book.getCount());
}
request.getSession().setAttribute("MyCart", MyCart);
System.out.println(MyCart);
}
catch ( Exception main_error ) {
System.out.println("%%%%%%%%%%%"+main_error);
}
%>
答案 0 :(得分:1)
你不应该编写java代码,特别是在JSP中创建类。它的编码实践非常糟糕 - 尝试将代码提取到实际的java文件中。
但要回答你的问题:你应该看到List对象是可迭代的,所以你可以使用
循环它for(BookInfo aBook: MyCart){
//code to look at each BookInfo object here
}