我无法获取arraylist中的元素,但我可以将student对象输出为整个字符串。有什么想法吗?
我的Servlet页面:
ArrayList<Student> students = Dao.getStudentList();
HttpSession session = request.getSession();
session.setAttribute("students", students);
我有一个Dao类连接到mySql数据库,我还在类中全局定义静态Arraylist来存储学生对象。
我的JSP页面:
<%
ArrayList<Student> list = new ArrayList<Student>();
if (request.getSession().getAttribute("students") != null) {
list = (ArrayList ) request.getSession().getAttribute("students");
}
else {
System.out.println("List is empty, Please insert new data");
}
%>
<table border="1" style="width: 800px">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Date of joined</th>
<th>Primary Address</th>
<th>Secondary Address</th>
</tr>
<c:set var="list" scope="session">
<%= list %>
</c:set>
<c:forEach items="${list}" var="lists">
<tr>
<td>${lists.id}</td>
<td>${lists.name}</td>
<td>${lists.age}</td>
<td>${lists.doj}</td>
<td>${lists.address1}</td>
<td>${lists.address2}</td>
</tr>
</c:forEach>
</table>
如果我这样做
<c:forEach items="${list}" var="lists">
<tr>
<td>${lists}</td>
</tr>
</c:forEach>
将对象输出为字符串。但这不是我想做的。我想输出所有带有相应元素的学生对象作为表格格式。
答案 0 :(得分:0)
您是否会对Display Tags感兴趣?他们为您提供所需的一切以及更多。 让我们说我们考虑您的标签的数据:
<display:table id="data" name="sessionScope.students">
<display:column property="id" title="ID" sortable="true"/>
<display:column property="name" title="Name" sortable="true"/>
<display:column property="age" title="Age" sortable="true"/>
<display:column property="doj" title="Date of joined" sortable="true"/>
</display:table>
这些标签将为您提供一个表格,可以在其他功能中包含可排序的列,分页和自定义样式。
答案 1 :(得分:0)
相反,您可以尝试这样的事情:
<c:forEach items="${sessionScope.students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
<td>${student.doj}</td>
<td>${student.address1}</td>
<td>${student.address2}</td>
</tr>
</c:forEach>
并确保您的getter方法名称与您的变量名称匹配(例如变量&#34; id&#34;应该有getId()方法)。