【问题标题】:Display a table of data in JSP from Servlet从 Servlet 显示 JSP 中的数据表
【发布时间】:2015-04-13 07:39:15
【问题描述】:

如果有很多数据行,如何在我的 JSP 页面上将其属性当然、名称、admno 逐行显示?

String sql = "Select * FROM details WHERE ADMNO = '" + adm + "'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
  String course = rs.getString("COURSE");
  String name = rs.getString("NAME");
  String admno = rs.getString("ADMNO");

  request.setAttribute("course", course);
  request.setAttribute("name", name);
  request.setAttribute("admno", admno);

  System.err.println(course + " " + name + " " + admno);

  d = getServletContext().getRequestDispatcher("/output.jsp");
  d.forward(request, response);

【问题讨论】:

  • 您的代码会有问题。您不应该将请求调度程序放在 while 循环中。 OMG:( . 第一次执行时,控件会转到jsp页面,不会处理下一条记录。
  • 另外,在编辑了代码的缩进之后,我觉得您在 while 循环中缺少结束 },或者您没有包含所有代码。
  • 没有包含我所有的代码

标签: mysql jsp servlets netbeans attributes


【解决方案1】:

首先您的代码会有问题。您不应该将请求调度程序放在 while 循环中。 OMG:( . 当它第一次被执行时,控件将转到 jsp 页面,并且循环不会再次执行,因为控件失控到 JSP。

我可以建议你 3 个步骤

1.创建一个类似的bean

 Class Student{
         String course;
         String name;
         String admNo;
         //Add getters and setters for all the members.
         //May be you can use constructor also for initializing in single shot.
    }

2.在您的 Servlet 中创建学生列表。为 ResultSet 中的每条记录创建学生对象。将此学生添加到学生列表中。将学生列表放入请求中。

3.使用JSTL并遍历学生列表并显示在您的JSP中

<c:forEach var="student" items="${studentlist}"> 
.... Your code here ...
</c:forEach>

【讨论】:

  • 嗯,我不太了解它,但目前我尝试使用 ${course} 在我的 JSP 上显示。当有四条记录时,只出现一条记录,这不是我想要的。那么无论如何我可以从那里编辑吗?
  • 您的记录似乎被覆盖了。在您的请求中,将只有一门课程、一个名称和一个 admno。所以我建议你创建一个 Bean 并将 bean 添加到列表中并在请求中发送。这样您就可以在请求中获得结果集中的所有数据
  • @Yong。首先更改while循环。将requestdispatcher退出while循环
  • @Yong:如果你发现它有效,你可以接受这个答案
  • 如果我要对 ${student.name} 中的姓名进行统计摘要是这可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多