繁体   English   中英

如何在jsp中从Java显示ArrayList项目?

[英]How to display ArrayList items from java in jsp?

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

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

BookDao类:

public  ArrayList<BookBean> listBooks = new ArrayList<>();

....

System.out.println(listBooks.get(0).getId()); ->display id of first row
System.out.println(listBooks.get(0).getTitle()); ->display title of first row
System.out.println(listBooks.get(0).getAuthor());

在我的Controller课上,我有:

    public String showBooks(Model bookModel){
        bookModel.addAttribute("bookAttribute", new BookDao());
        return "book-list";
    }

我想通过使用Controller中的Model在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();
        }}

BookController打开jsp页面“ book-list.jsp”:

@Controller
public class BookController {
    @RequestMapping("/showBooks")
    public String showBooks(Model bookModel){
        bookModel.addAttribute("bookAttribute", new BookDao());
        return "book/book-list";
    }
}

我想通过控制器中创建的Model通过jsp访问“ listBooks”。 我当时在想jstl,但是我无法相应地编写代码。

您可以使用jstl核心标记<c:forEach> 如果您需要遍历列表,可以执行以下操作:

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

 model.addAttribute("bookList", yourList);

在JSP中:

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

有关更多详细信息,请参见oracle官方文档

在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());
%>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM