私はそのbookidに基づいて本のリストを取得しているクラスを持っています。
リストを取得するためのコード:
Bookdetails book=new Bookdetails();book = dao.listBookDetailsById(Integer.parseInt(bookid));
IDに基づいて1冊の本を取得した後、その本をリストに挿入し、セッションに入れているのと同じリストをjspページに戻します。
本をリストに挿入するためのコード `
for(int i=1;i<=1;i++)
{
book = dao.listBookDetailsById(Integer.parseInt(bookid));
books.add(book);
}
session.put(BillTransactionBooksConstants.BOK, books );
lists = (List) session.get( BillTransactionBooksConstants.BOK );
System.out.println(lists.size()); `
注:ユーザーがjspページの行をクリックするたびに、bookidがアクションクラスに追加されます
しかし、私の問題は次のとおりです。リストに本を追加しようとすると、リストに1冊の本しか追加されません。ユーザーが別のブックIDを渡して配列リストに追加すると、前のブックIDと一緒にリストに挿入されません。私のリストサイズは常に1を示しています。
ユーザーがbookidをアクションクラスに渡すときに、それらの本のIDに基づいてすべての本を配列リストに挿入したいと思います。
この問題を解決するのを手伝ってください。
フルアクションクラスコード:
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;
}
}