我正在使用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是怎么回事?
答案 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}" />