无法将java.util.ArrayList转换为bean.Book

无法将java.util.ArrayList转换为bean.Book,java,jsp,Java,Jsp,我想在带有arrayList的JSP页面中使用bean。 以下是servlet代码: public class ResServlet extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String isbn = request.ge

我想在带有arrayList的JSP页面中使用bean。 以下是servlet代码:

public class ResServlet extends HttpServlet{
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    String isbn = request.getParameter("isbn");
    String title = request.getParameter("title");
    String author = request.getParameter("author");
    String publisher = request.getParameter("publisher");
    String year = request.getParameter("year");
    ArrayList<Book> book = JDBC.getBooks(Integer.valueOf(isbn), title, author, publisher, Integer.valueOf(year));
    request.setAttribute("book", book);
    System.out.println("Class ResServlet :\t ISBN : " + isbn + "| title : " + title + " | author : " + author + " | publisher " + publisher + " | year : " + year );

    RequestDispatcher dispatcher = request.getRequestDispatcher("book.jsp");
    dispatcher.forward(request, response);

    }
}
谢谢你的帮助

告诉JSP,在请求范围内,您正在传递一个名为
Book
bean.Book
实例。servlet编译器将实际创建Java代码,将结果对象强制转换为声明的类

但是,您正在传递一个
java.util.ArrayList
,它不能分配给
bean.Book

将你的书(或者应该是书)定义为
最通用的
数组列表形式是
集合

<jsp:useBean id="books" class="java.util.Collection" scope="request"/>
<c:forEach items="${books}" var="book">
    <tr>
        <td><c:out value="${book.title}"/></td>
    </tr>
</c:forEach>


谢谢您的回答,但当我修改class属性时,它显示了一个错误:在此行找到多个注释:-无法实例化类型集合-集合是原始类型。对泛型类型集合的引用应该参数化编辑:最后,我将集合更改为ArrayListI,我尝试了此解决方案。使用java.util.ArrayList时,警告已消失。但是我没有在JSP页面上显示任何内容。请确保将正确的bean和正确的内容放在请求范围中。列表为空或未放入范围(尽管我认为这会导致运行时错误)。谢谢!我忘了在servlet(request.setAttribute(“books”,book))上将“book”更改为“books”。
java.lang.ClassCastException: java.util.ArrayList cannot be cast to bean.Book
    org.apache.jsp.book_jsp._jspService(book_jsp.java:139)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    servlet.ResServlet.doGet(ResServlet.java:29)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
<jsp:useBean id="books" class="java.util.Collection" scope="request"/>
<c:forEach items="${books}" var="book">
    <tr>
        <td><c:out value="${book.title}"/></td>
    </tr>
</c:forEach>