Java 如何在arraylist中逐个添加对象以形成完整的列表
我有一个班级,我正在根据他们的图书ID获取图书列表 获取列表的代码:Java 如何在arraylist中逐个添加对象以形成完整的列表,java,list,jsp,struts2,arraylist,Java,List,Jsp,Struts2,Arraylist,我有一个班级,我正在根据他们的图书ID获取图书列表 获取列表的代码: Bookdetails book=newbookdetails();book=dao.listBookDetailsById(Integer.parseInt(bookid)) 在根据其Id获取一本书之后,我将该书插入一个列表和我在会话中放入的相同列表,并将其返回到我的jsp页面 将书籍插入列表的代码 ` for(int i=1;i问题在于您没有从会话加载列表,因此每次有新请求时,您都会创建一个新列表 编辑:第一次尝试从会话加
Bookdetails book=newbookdetails();book=dao.listBookDetailsById(Integer.parseInt(bookid))代码>
在根据其Id获取一本书之后,我将该书插入一个列表和我在会话中放入的相同列表,并将其返回到我的jsp页面
将书籍插入列表的代码
`
for(int i=1;i问题在于您没有从会话加载列表,因此每次有新请求时,您都会创建一个新列表
编辑:第一次尝试从会话加载列表时,没有注意到,因此我们需要创建ArrayList。您可以在一些初始化例程中执行此操作,但下面的代码提供了一个很好的解决方法
试试这个:
books = (List) session.get( BillTransactionBooksConstants.BOK );
if ( books == null ) books = new ArrayList<Bookdetails>();
book = dao.listBookDetailsById(Integer.parseInt(bookid));
books.add(book);
session.put(BillTransactionBooksConstants.BOK, books );
books=(List)session.get(BillTransactionBooksConstants.BOK);
如果(books==null)books=newarraylist();
book=dao.listBookDetailsById(Integer.parseInt(bookid));
图书。添加(图书);
session.put(billtransactionbookstants.BOK,books);
希望它能起作用。请帮助我。我从早上就开始尝试。你为我写的答案不完全正确。当我的debbuger到达'books.add(book);'此代码时,它会直接转发到return succus;
。新数据不会添加到会话中。
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import v.esoft.actions.interceptor.VisionBooksConstants;
import v.esoft.dao.BookdetailsDAO.BookdetailsDAO;
import v.esoft.pojos.Bookdetails;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class AddBookToSession extends ActionSupport {
Bookdetails book=new Bookdetails();
List<Bookdetails> books = new ArrayList<Bookdetails>();
List<Bookdetails> lists = new ArrayList<Bookdetails>();
BookdetailsDAO dao = new BookdetailsDAO();
Map session = ActionContext.getContext().getSession();
@SuppressWarnings("unchecked")
public String execute()
{
HttpServletRequest request = ServletActionContext.getRequest();
String bookid = request.getParameter("bid");
System.out.println("---------------Bookid-"+bookid);
for(int i=1;i<=1;i++)
{
book = dao.listBookDetailsById(Integer.parseInt(bookid));
System.out.println("---------------Bookid-"+book);
books.add(book);
}
session.put(BillTransactionBooksConstants.BOK, books );
lists = (List) session.get( BillTransactionBooksConstants.BOK );
System.out.println(lists.size());
return SUCCESS;
}
public Bookdetails getBook() {
return book;
}
public void setBook(Bookdetails book) {
this.book = book;
}
public List<Bookdetails> getBooks() {
return books;
}
public void setBooks(List<Bookdetails> books) {
this.books = books;
}
public List<Bookdetails> getLists() {
return lists;
}
public void setLists(List<Bookdetails> lists) {
this.lists = lists;
}
}
books = (List) session.get( BillTransactionBooksConstants.BOK );
if ( books == null ) books = new ArrayList<Bookdetails>();
book = dao.listBookDetailsById(Integer.parseInt(bookid));
books.add(book);
session.put(BillTransactionBooksConstants.BOK, books );