我生成了一个数组列表,我在其中逐行从数据库中获取项目。我想在jsp中显示值,但不知道如何将jsp绑定(bind)到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 中的模型在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";
}
}
我想通过 Controller 中创建的模型访问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>
...
关于java - 如何在jsp中显示java中的ArrayList项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664560/