java - forEach 标签不知道如何遍历属性 JSP
问题描述
我有一个列表,它从数据库返回值,我在一个 servlet 中获取它,我将它分配给一个属性并将它转发到我循环遍历它的 jsp 页面。
我遇到了这个错误:
javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
包含返回列表的方法的类
public class DataModel {
private DataSource dataSource;
public DataModel(DataSource dataSource) {
this.dataSource = dataSource;
}
public List<Student> getStudents() throws ServletException, SQLException{
List<Student> students = new ArrayList<Student>();
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
connection = dataSource.getConnection();
statement = connection.createStatement();
String sql = "select * from student order by last_name";
resultSet = statement.executeQuery(sql);
while(resultSet.next()) {
String firstName = resultSet.getString("first_name");
String lastName = resultSet.getString("last_name");
String email = resultSet.getString("email");
Student student = new Student(firstName, lastName, email);
students.add(student);
}
return students;
} finally {
close(connection, statement, resultSet);
}
}
private void close(Connection connection, Statement statement, ResultSet resultSet) {
try {
if(connection != null) {
connection.close();
}
if(statement != null) {
statement.close();
}
if(resultSet != null) {
resultSet.close();
}
} catch (SQLException e) {
}
}
}
我的类包含我的 servlet:
@WebServlet("/serveLET")
public class serveLET extends HttpServlet {
private static final long serialVersionUID = 1L;
private DataModel dataModel;
@Resource(name="jdbc/web_student_tracker")
private DataSource dataSource;
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
try {
dataModel = new DataModel(dataSource);
} catch(Exception e) {
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
List<Student> students = dataModel.getStudents();
request.setAttribute("list-students1", students);
RequestDispatcher dispatcher = request.getRequestDispatcher("/page.jsp");
dispatcher.forward(request, response);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
JSP文件代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:forEach var="tempStudents" items="${list-students1}">
<tr>
<td>${tempStudents.firstName }</td>
<td>${tempStudents.lastName }</td>
<td>${tempStudents.email }</td>
</tr>
</c:forEach>
到目前为止,我一直在花费大量时间来修复此错误,但没有解决方案。任何帮助都会得到帮助。
解决方案
推荐阅读
- python - 根据 Pandas 中的时间序列创建月 x 年的数据框
- delphi - Delphi 表单命名约定
- c++ - RenderDoc 在调试 Vulkan 时不显示缓冲区内容
- reactjs - 在现代页面上使用带有 SPFx webpart 的 office-ui-fabric 面板时出现问题
- flutter - 如何使用 disqus 登录我的移动应用程序?
- java - 在 Ubuntu 上运行 JAR 时无法找到或加载主类
- c# - 内存扫描仪信息
- python - Python中的字典理解
- c++ - 如何停止 C++ 阻塞读取调用
- python - Python Kivy:如何检查按钮是否被点击?