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