在JSP页面上使用Java中的ArrayList

时间:2014-09-25 21:03:13

标签: java jsp arraylist

我正在尝试将我创建的ArrayList传递给JSP页面,但是我很难尝试这样做。这是我到目前为止所拥有的。

Java类:

public class Main {

    private ArrayList<Employee> employees = new ArrayList<Employee>();

    public Main (){
        try{
            BufferedReader br = new BufferedReader(new FileReader("lang.txt"));
            String line;
            String[] employee;
            Employee employeeObject;
            br.readLine();
            while ((line = br.readLine()) != null) {
               employee = line.split(",");
               employeeObject = new Employee (employee[0], employee[1], employee[2], employee[3], employee[4], employee[5], employee[6]);
               employees.add(employeeObject);             
            }
            br.close();
        }
        catch(IOException e){

        }
    }

    /**
     * @return the employees
     */
    public ArrayList<Employee> getEmployees() {
        return employees;
    }

    /**
     * @param employees the employees to set
     */
    public void setEmployees(ArrayList<Employee> employees) {
        this.employees = employees;
    }

}

JSP页面:

<%@page import="lab3final.beans.Employee"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="employee" scope="session" class="lab3final.beans.Main"/>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Table Data</title>
    </head>
    <body>

        <h1>Data in text file in table format</h1><br>
        <c:forEach items="${employee.employees}" var="item">
            ${item}<br/>
        </c:forEach>
    </body>
</html>

如果有人能给我一些关于我做错的事情,那就太好了。我无法读取我在JSP页面上创建的ArrayList。

更新:我发现问题是我必须提供我的文本文件lang.txt的完整路径,否则它将在其他目录中搜索该文件,而不是我的主项目目录。我想当我尝试在类的构造函数中使用FileReader读取文件时,这是搜索文件的默认位置。

现在我可以使用${employee.employees}打印出所有员工,它将使用我在employees类中定义的toString()方法打印出所有员工。我仍在试图弄清楚如何在JSP中使用循环函数,这样我就可以遍历每个员工。

2 个答案:

答案 0 :(得分:0)

在jsp页面中调用employee类的每个变量。确保您的员工对象具有所有必要的getter和setter。 $ {item.variable1},$ {item.variable2}

答案 1 :(得分:0)

我弄清楚问题是什么。我这是一个愚蠢的错误。我忘了在JSP页面上添加这一行:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

这就是forEach循环不起作用的原因。一旦我将该行添加到我的页面顶部,循环工作得非常好,我能够循环遍历每个单独的员工对象。谢谢你的帮助!