如何使用表达式语言显示File对象的数据?

时间:2014-04-26 19:42:44

标签: java jsp servlets jstl el

我有一个包含文件的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个对象的绝对文件路径?

1 个答案:

答案 0 :(得分:0)

你应该可以这样做:

<td><c:out value="${currentFile.canonicalPath}"/></td>

如果contents确实是List File

此外,没有特别的理由通过Session填充request.getSession()。您可以使用request.setAttribute(...)将数据作为属性直接放入请求中。

对于仅适用于JSP的真正瞬态数据,这是一个更好的地方。将事物放入会话中的范围超出了当前请求。 (如果这是故意的,没什么大不了的,只是一个FYI。)