我创建了一个 JSP,它调用 java 方法并获取一个对象 ArrayList。我想在表格中显示结果,但什么也没有出现。 jsp如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="SCOfetch.*" %>
<%@ page import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>First Page</title>
<% JCOtest connection1 = new JCOtest(); %>
<%
ArrayList<CompanyRecord> list = new ArrayList<CompanyRecord>();
list = connection1.step4QueryTable();
%>
</head>
<body>
<c:forEach var="row" items="${list.rows}">
<tr>
<td><c:out value="${row.getValue(Name)}"/></td>
<td><c:out value="${row.getValue(Code)}"/></td>
</tr>
</c:forEach>
</body>
</html>
CompanyRecord类的java代码是
public class CompanyRecord {
private String Code;
private String Name;
public void setValue(String value,String column)
{
if (column.equals("Code"))
{
Code=value;
}
else
{
Name=value;
}
}
public String getValue(String column)
{
if (column.equals("Code"))
{
return Code;
}
else
{
return Name;
}
}
}
调用 ArrayList lineitem 方法的正确方法是什么?谢谢。
最佳答案
请在 JSP 中找到以下用于迭代 ArrayList 的代码。
请不要在 JSP 中创建 ArrayList。请在从 servlet 调用 JSP 之前创建 ArrayList 并设置。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="SCOfetch.*" %>
<%@ page import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>First Page</title>
<% JCOtest connection1 = new JCOtest(); %>
<%
ArrayList<CompanyRecord> list = new ArrayList<CompanyRecord>();
list = connection1.step4QueryTable();
%>
</head>
<body>
<c:forEach items="${list}" var="row">
<tr>
<td>${row.Name}</td> <!-- use variable name same like in DTO -->
<td>${row.Code}</td>
</tr>
</c:forEach>
</body>
</html>
并且请在 CompanyRecord DTO 类中生成 getter 方法,只有此代码才能正常工作。
public class CompanyRecord {
private String Code;
private String Name;
public void setValue(String value,String column)
{
if (column.equals("Code"))
{
Code=value;
}
else
{
Name=value;
}
}
public String getValue(String column)
{
if (column.equals("Code"))
{
return Code;
}
else
{
return Name;
}
}
public String getCode()
{
return this.Code;
}
public String getName()
{
return this.Name;
}
}
关于java - 如何在JSP中迭代ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60629203/