繁体   English   中英

如何在 JSP 中迭代一个 ArrayList

[英]how to iterate an ArrayList in JSP

我创建了一个调用 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 方法的正确方法是什么? 谢谢。

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM