Java 只有数据库的最后一行在jsp页面中重复显示

Java 只有数据库的最后一行在jsp页面中重复显示,java,Java,这是一个主servlet,用于显示jspjava服务器页面中的数据列表。我无法显示我的数据库表行,而不是重复显示数据库的最后一行,直到数据库行总数为止 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String address = "balaju"; request.setAttribute

这是一个主servlet,用于显示jspjava服务器页面中的数据列表。我无法显示我的数据库表行,而不是重复显示数据库的最后一行,直到数据库行总数为止

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String address = "balaju";
    request.setAttribute("address", address);//response can not use

    //ItemBean item = new ItemBean();

    List<ItemBean> itemList = new ArrayList<ItemBean>();
    try {
        System.out.println("at home servlet");
        ItemDao dao = ItemDaoFactory.getItemDao();
        itemList = dao.getItemFromdb();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("@home servlet ");
    for(ItemBean item1:itemList){
        System.out.println(item1.getTransactionTime());
        System.out.println(item1.getItemPrice());
        System.out.println(item1.getItemName());
    }
    request.setAttribute("itemList", itemList);
    RequestDispatcher rd = request.getRequestDispatcher("home/home.jsp");
    rd.forward(request, response);}
//jdbc代码打算显示数据表单数据库的列表,但在jsp页面中使用jstl foreach标记只显示数据库的最后一行

 public List<ItemBean> getItemFromdb() throws SQLException {
    JdbcConnection connecton = new JdbcConnection();
    String query = "select * from itemsinfo";
    //Connection con = connecton.getConnection();
    List<ItemBean> itemList = new ArrayList<ItemBean>();
    ItemBean item = new ItemBean();
    Statement statement = connecton.getSqlStatement();
    ResultSet rs;
    try {
       rs = statement.executeQuery(query);
         while (rs.next()) {


            item.setItemName(rs.getString("itemname"));
            item.setItemPrice(rs.getDouble("itemprice"));
            item.setTransactionTime(rs.getString("transactiontime"));
           // itemList.add(item);

           /* System.out.println("itemname :"+item.getItemName());
            System.out.println("price:"+item.getItemPrice());
            System.out.println("time:"+item.getTransactionTime());
            System.out.println("/n"); */

        }

        System.out.println("at jdbc code");
        for(ItemBean item1:itemList){

            System.out.println(item1.getItemName());
            System.out.println(item1.getItemPrice());
            System.out.println(item1.getTransactionTime());
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }
    return itemList;

}

您的列表中只有一项

 // ItemBean item = new ItemBean(); // You don't need this one.
 while (rs.next()) {
   ItemBean item = new ItemBean(); // Instantiate a new ItemBean, don't update ONE.
   item.setItemName(rs.getString("itemname"));
   item.setItemPrice(rs.getDouble("itemprice"));
   item.setTransactionTime(rs.getString("transactiontime"));
   itemList.add(item); // Add the item to the List.
 }

为什么要在中注释掉将项添加到itemList的代码getItemFromdb@JigarJoshi它被评论掉了。我假设它应该被添加到列表中,所以我取消了它的注释,我进一步假设应该添加多个项目。如果while循环中没有新的ItemBean,那就不会发生!我的上帝……成功……感谢你们所有人。如果你们这样帮助我,我可以进入下一章。意想不到的巨大帮助。这是我的第一个问题得到了帮助……特别感谢@ElliottFrisch@user3620849如果它现在起作用了,请。