2

我正在使用 spring mvc 3 并且我的控制器正在将一个列表从控制器传递到 JSP:

列出合适的匹配 = 新的 ArrayList(); ...//将文件添加到此列表中的一些代码 model.addAttribute("lists", suitMatches);

在我的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 怎么不起作用?

4

2 回答 2

1

根据您的 Web 服务器使用的JSP 表达式语言的版本,您可能无法使用此语法访问非 getter方法。

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

所以代码应该被阅读${list.lastModified()},并且您将需要使用至少 v2.2 的 EL jar,因此这将需要显式包含在 Web 应用程序中,或者使用已经包含该库的 servlet 容器。

el 语法的一个很好的来源可以在 stackoverflow 的el 标签描述中找到

于 2012-10-24T08:46:43.227 回答
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}" />
于 2015-03-06T02:20:34.950 回答