我有一个包含文件的ArrayList<File>
对象。我已将对象设置为标题为"content"
的参数以及test
String
:
request.getSession().setAttribute("test", "test");
request.getSession().setAttribute("contents", contents);
request.getRequestDispatcher("/index.jsp").forward(request, response);
在jsp
页面上,我使用以下内容打印出他们的值:
<table border="1" cellpadding="15px">
<tr>
<td>
<b>Filename</b>
</td>
</tr>
<c:forEach items="${contents}" var="currentFile">
<tr>
<td><c:out value="${currentFile.shortName}"/></td>
</tr>
</c:forEach>
</table>
<%= session.getAttribute("test") %>
但是,打印出的唯一内容是test
,即使contents
肯定填充了文件。
如何在File
上的contents
ArrayList
打印index.jsp
个对象的绝对文件路径?
答案 0 :(得分:0)
你应该可以这样做:
<td><c:out value="${currentFile.canonicalPath}"/></td>
如果contents
确实是List
File
。
此外,没有特别的理由通过Session
填充request.getSession()
。您可以使用request.setAttribute(...)
将数据作为属性直接放入请求中。
对于仅适用于JSP的真正瞬态数据,这是一个更好的地方。将事物放入会话中的范围超出了当前请求。 (如果这是故意的,没什么大不了的,只是一个FYI。)