gpt4 book ai didi

java - 遍历 JSP 中的列表对象

转载 作者:IT老高 更新时间:2023-10-28 13:58:23 25 4
gpt4 key购买 nike

我正在做一个项目来尝试自学 Spring 和支柱。我目前卡在 JSP 页面上。我有一个带有 getter/setter 变量 eid 和 ename 的 pojo 类,我在 sql 中也有一个表,其中包含六个填充行的相同值。
我正在通过 JdbcTemplate 访问我的数据库并将结果存储在一个列表中,然后我将此列表传递给我的操作页面,在其中将其设置为 request.setAttribute("empList",eList) .在我的 jsp 页面中,我调用该属性,然后尝试使用 JSTL 对其进行迭代。 .
但是什么也没显示,我知道我的列表变量中有数据,因为我使用表达式标签<%=eList%>检查了它和对象显示如下:

[org.classes.database.Employee@d9b02, 
org.classes.database.Employee@13bce7e,
org.classes.database.Employee@171cc79,
org.classes.database.Employee@272a02,
org.classes.database.Employee@137105d,
org.classes.database.Employee@1359ad]

我想也许我在 jSTL 上遗漏了一些东西,但我的 META-INF/lib 中有 jSTL-1.2文件夹。我也尝试将它添加到配置路径文件中,但仍然没有。我也有正确的标签网址。
还有当我做一个简单的<c:out value="Hello"/> .你好打印出来。所以这让我相信我的jstl工作正常,但是当我尝试使用 jstl 遍历我的列表时什么都没有显示。

无论如何,这是我的 JSP 页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-   8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.List"%>
<!DOCTYPE html>
<% List eList = (List)session.getAttribute("empList");%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Employee Details</title>
</head>
<body>
<c:out value="Hello"></c:out>
<h3>Employee Details</h3>
<hr size="4" color="gray"/>
<table>
<%=eList%>
<c:forEach items="${eList}" var="employee">
<tr>
<td>Employee ID: <c:out value="${employee.eid}"/></td>
<td>Employee Pass: <c:out value="${employee.ename}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>

任何帮助将不胜感激!

最佳答案

在自学 Spring 和 Struts 之前,您可能应该更深入地研究 Java 语言。像这样输出

org.classes.database.Employee@d9b02

Object#toString() 方法的结果,所有对象都继承自 Object 类,Java 中所有类的父类(super class)。

List 子类通过遍历所有元素并在这些元素上调用 toString() 来实现这一点。但是,您似乎没有在 Employee 类中实现(覆盖)该方法。

你的 JSTL 在这里

<c:forEach items="${eList}" var="employee">
<tr>
<td>Employee ID: <c:out value="${employee.eid}"/></td>
<td>Employee Pass: <c:out value="${employee.ename}"/></td>
</tr>
</c:forEach>

除了您没有名为 eList 的页面、请求、 session 或应用程序范围属性这一事实之外,这都很好。

你需要添加它

<% List eList = (List)session.getAttribute("empList");
request.setAttribute("eList", eList);
%>

或者在forEach中使用属性empList

<c:forEach items="${empList}" var="employee">
<tr>
<td>Employee ID: <c:out value="${employee.eid}"/></td>
<td>Employee Pass: <c:out value="${employee.ename}"/></td>
</tr>
</c:forEach>

关于java - 遍历 JSP 中的列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com