想要在JSP中显示最后修改的文件列表

时间:2012-10-24 04:20:17

标签: spring-mvc

我正在使用spring mvc 3,我的控制器正在将List从控制器传递给JSP:

列出properMatches = new ArrayList(); ... //将文件添加到此列表的一些代码  model.addAttribute(“lists”,properMatches);

和我的jsp:

<tr>
<td class="readOnly">${list.name}</td>
<td class="readOnly">${idiomSearch.testCaseID}</td>
<td class="readOnly">${list.lastModified}</td>
<td class="readOnly"><a href="downloadFile.htm?testID=${list.name}">Download</a></td>
</tr>

但我收到错误:

错误500:org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是javax.el.PropertyNotFoundException:在类型java.io.File上找不到属性'lastModified'

有人可以告诉我,list.lastModified是怎么回事?

2 个答案:

答案 0 :(得分:1)

根据您的网络服务器使用的JSP Expression Language版本,您可能无法使用此语法访问非getter 方法。

${list.name}用作文件的方法名为getName()。但是, File 没有名为getLastModified()的方法,该方法只是调用lastModified(),因此在调用非getter的方法时必须添加括号。

所以代码应该是${list.lastModified()},你需要至少使用EL jar的v2.2,所以这需要显式包含在web应用程序中或使用已经包含这个的servlet容器库。

可以在stackoverflow的el tag description

中找到el语法的一个很好的来源

答案 1 :(得分:1)

您可以使用JSTL和表达式语言的组合,例如

<jsp:useBean id="dateValue" class="java.util.Date"/>
<jsp:setProperty name="dateValue" property="time" value="${file.lastModified()}"/>

<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss z" value="${dateValue}" />