java - 如何在JSP中迭代ArrayList

标签 java jsp arraylist

我创建了一个 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/

相关文章:

java - apache tiles 与自定义 tagx ("fragment")

java - 无法将缺失的时间字符串添加到列表中

java - 如何编写测试类来测试我的代码?

java - 使用 shiro 1.2.1 对数据库进行身份验证

java - 是否可以用纯html和js代替JSP?

java - 异常最终被吞噬

javascript - 如何在同一页面上的 javascript 中使用从自动完成中选择的值

java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java :255) Error

java - EntityManager 没有持久性提供程序?

java - 在java中绘制帕累托前沿解