【问题标题】:how to iterate an ArrayList in JSP如何在 JSP 中迭代 ArrayList
【发布时间】:2020-06-23 00:49:03
【问题描述】:

我创建了一个调用 java 方法并获取对象 ArrayList 的 JSP。我想在表格中显示结果,但没有出现。 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 方法的正确方法是什么?谢谢。

【问题讨论】:

标签: java jsp arraylist


【解决方案1】:

请在 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;
 }

}

【讨论】:

    猜你喜欢
    • 2013-04-30
    • 1970-01-01
    • 2014-11-21
    • 2014-06-20
    • 2012-09-01
    • 2014-10-19
    • 2012-10-05
    • 1970-01-01
    相关资源
    最近更新 更多