我正在尝试将我创建的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中使用循环函数,这样我就可以遍历每个员工。
答案 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
循环不起作用的原因。一旦我将该行添加到我的页面顶部,循环工作得非常好,我能够循环遍历每个单独的员工对象。谢谢你的帮助!