Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jsp中显示java中的ArrayList项?_Java_Mysql_Jsp_Jstl - Fatal编程技术网

如何在jsp中显示java中的ArrayList项?

如何在jsp中显示java中的ArrayList项?,java,mysql,jsp,jstl,Java,Mysql,Jsp,Jstl,我已经生成了一个Arraylist,在这里我逐行从数据库中获取项目。我想在jsp中显示这些值,但我不知道如何将jsp绑定到java 在java类中,listBook是BookBean类型的Arraylist 书道类: public ArrayList<BookBean> listBooks = new ArrayList<>(); 在我的控制器类中,我有: public String showBooks(Model bookModel){ bo

我已经生成了一个Arraylist,在这里我逐行从数据库中获取项目。我想在jsp中显示这些值,但我不知道如何将jsp绑定到java

在java类中,listBook是BookBean类型的Arraylist

书道类:

public  ArrayList<BookBean> listBooks = new ArrayList<>();
在我的控制器类中,我有:

    public String showBooks(Model bookModel){
        bookModel.addAttribute("bookAttribute", new BookDao());
        return "book-list";
    }
我想使用来自控制器的模型在jsp中打印listBook的结果。我该怎么做

BookDao:
public  ArrayList<BookBean> listBooks = new ArrayList<>();
 public void generateBookList() {
        try {
            Connection connection = ConnectToDatabase.createConnection();
            if (connection != null) {
                PreparedStatement preparedStatement = connection.prepareStatement("SELECT * from book ");
                ResultSet resultSet = preparedStatement.executeQuery();
                while (resultSet.next()) {
                    BookBean bookBean = new BookBean(resultSet.getInt("id_book"), resultSet.getString("title"), resultSet.getString("author"), resultSet.getString("publishDate"), resultSet.getInt("quantity"), resultSet.getString("bookPrice"));
                    listBooks.add(bookBean);
                } }
        } catch (Exception e) {
            e.printStackTrace();
        }}

我想通过在控制器中创建的模型访问jsp中的“listBooks”。我想到了jstl,但我无法相应地编写代码。

在JSP页面上只需执行以下操作:

<%
   out.println(listBooks.get(0).getId()); ->display id of first row
   out.println(listBooks.get(0).getTitle()); ->display title of first row
   out.println(listBooks.get(0).getAuthor());
%>
第一行的显示id
out.println(listBooks.get(0.getTitle());->显示第一行的标题
out.println(listBooks.get(0.getAuthor());
%>

您可以使用jstl核心标记
。如果需要循环查看列表,可以执行以下操作:

在您的BookController中将您的列表传递给模型:

在JSP中:

...
<c:forEach items="${bookList}" var="book"> 
${book.id}  <%-- BookBean fields that you want print out--%>
${book.title}
<%-- another fields --%>
</c:forEach>
...
。。。
${book.id}
${book.title}
...

发布您的jsp页面我正在考虑从控制器通过ModelBookModel访问列表。。。我该怎么做呢?请把
Model
BookDao
类的代码也贴出来,把你的意图解释清楚一点。我想你需要简化一下。您需要正确地创建模型和控制器。阅读以下文章了解模型-视图-控制器的概念:控制器应该是一个Servlet。
<%
   out.println(listBooks.get(0).getId()); ->display id of first row
   out.println(listBooks.get(0).getTitle()); ->display title of first row
   out.println(listBooks.get(0).getAuthor());
%>
 model.addAttribute("bookList", yourList);
...
<c:forEach items="${bookList}" var="book"> 
${book.id}  <%-- BookBean fields that you want print out--%>
${book.title}
<%-- another fields --%>
</c:forEach>
...