Java 即使发送了属性,JSP代码也显示null

Java 即使发送了属性,JSP代码也显示null,java,jsp,servlets,requestdispatcher,Java,Jsp,Servlets,Requestdispatcher,我没有主意了。我打印了我从Servlet发送的ArrayList书籍,它一直显示null。当我在Servlet中打印该数组时,它显示了正确的数据集。也许你能帮我: 这是Servlet: private void listBookedPlaces(HttpServletRequest request, HttpServletResponse response) throws Exception { // get list of booked places from db

我没有主意了。我打印了我从Servlet发送的ArrayList书籍,它一直显示null。当我在Servlet中打印该数组时,它显示了正确的数据集。也许你能帮我: 这是Servlet:

    private void listBookedPlaces(HttpServletRequest request, HttpServletResponse response)
    throws Exception {

    // get list of booked places from db util
    List<Book> books = bookDbUtil.getBooks();

    // add booked places to the request
    request.setAttribute("BOOKED_LIST", books); // set Attribute  (-name "BOOKED_LIST", -value books);

    // send to JSP page (view)
    RequestDispatcher dispatcher = request.getRequestDispatcher("/list-book.jsp");
    dispatcher.forward(request, response);

}
private void listBookedPlaces(HttpServletRequest请求,HttpServletResponse响应)
抛出异常{
//从db util获取预订位置列表
List books=bookDbUtil.getBooks();
//将预订的座位添加到请求中
request.setAttribute(“BOOKED_LIST”,books);//set属性(-name“BOOKED_LIST”,value books);
//发送到JSP页面(视图)
RequestDispatcher=request.getRequestDispatcher(“/list book.jsp”);
转发(请求、响应);
}
这是我的JSP代码:

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*, com.pbs.web.jdbc.*" %>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>PSBS - Booked Parking Spaces Tracker</title>
</head>
<%
    // "BOOKED-LIST" is attribiute name set in ControllerServlet
    List<Book> theBooks = 
            (List<Book>) request.getAttribute("BOOKED_LIST");                      
%>
<body>
    <%= theBooks %>
</body>
</html>

PSBS-预订停车位跟踪系统
我认为在分派时或JSP本身中一定存在错误。 我100%确信我提供的.jsp文件名是正确的。
有什么想法吗?

根据此代码

 List<Book> theBooks = (List<Book>) request.getAttribute("BOOKED_LIST");
List thebook=(List)request.getAttribute(“BOOKED_List”);
您得到的是列表而不是对象。 最好使用for循环打印体中的列表对象,如

<%
for (int i = 0; i < theBooks.size(); i++)
      {
         System.out.println(theBooks.get(i).toString());
      }
%>

根据此代码

 List<Book> theBooks = (List<Book>) request.getAttribute("BOOKED_LIST");
List thebook=(List)request.getAttribute(“BOOKED_List”);
您得到的是列表而不是对象。 最好使用for循环打印体中的列表对象,如

<%
for (int i = 0; i < theBooks.size(); i++)
      {
         System.out.println(theBooks.get(i).toString());
      }
%>

您的项目是否使用mvc概念构建?如果是这样,那么我假设您有一个bean book类,也许这是其中之一:

public int getBookID() {
    return bookID;
}
然后根据bean中的方法在jsp中提取“BOOKED_LIST”:

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*, com.pbs.web.jdbc.*" %>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>PSBS - Booked Parking Spaces Tracker</title>
</head>
<%
    // "BOOKED-LIST" is attribiute name set in ControllerServlet                      
%>
<body>
    <c:forEach var="bookBean" items="${BOOKED_LIST}">
        <tr>
            <td>${bookBean.getBookID()}</td>
        </tr>
    </c:forEach>
</body> 
</html>

PSBS-预订停车位跟踪系统
${bookBean.getBookID()}

您的项目是否使用mvc概念构建?如果是这样,那么我假设您有一个bean book类,也许这是其中之一:

public int getBookID() {
    return bookID;
}
然后根据bean中的方法在jsp中提取“BOOKED_LIST”:

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*, com.pbs.web.jdbc.*" %>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>PSBS - Booked Parking Spaces Tracker</title>
</head>
<%
    // "BOOKED-LIST" is attribiute name set in ControllerServlet                      
%>
<body>
    <c:forEach var="bookBean" items="${BOOKED_LIST}">
        <tr>
            <td>${bookBean.getBookID()}</td>
        </tr>
    </c:forEach>
</body> 
</html>

PSBS-预订停车位跟踪系统
${bookBean.getBookID()}

问题在不同的文件中。在index.html中,我忘了添加隐藏数据类型,稍后我将使用它来识别是显示列表,还是更新并显示。如果只省略显示的整个SQL查询,则没有输入查询,只需查询以获取数据。问题位于不同的文件中。在index.html中,我忘了添加隐藏数据类型,稍后我将使用它来识别是显示列表,还是更新并显示。若只省略显示的整个SQL查询,则并没有输入查询,只需查询以获取数据。