【问题标题】:Want to display file list last modified in JSP想要在 JSP 中显示最后修改的文件列表
【发布时间】:2012-10-24 04:20:16
【问题描述】:

我正在使用 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: Property 'lastModified' not found on type java.io.File

谁能告诉我,list.lastModified 怎么不起作用?

【问题讨论】:

    标签: spring-mvc


    【解决方案1】:

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

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

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

    el 语法的良好来源可以在 stackoverflow 的 el tag description 中找到

    【讨论】:

    • 谢谢@Andy,但是我创建了一个只有getter的java bean,并且在构造函数中,我传递了我需要的日期值。因为 lastModified 只会显示 long 值,这在屏幕上显示没有意义,所以我这样做了:'public classsuitableMatch { .. .. private final String dateCompleted; .. 公共合适匹配(文件文件,字符串 testId,字符串 testCaseId){.. this.dateCompleted = new java.util.Date(file.lastModified()).toString(); ..}'
    【解决方案2】:

    您可以为此使用 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}" />
    

    【讨论】:

      猜你喜欢
      • 2017-03-26
      • 2012-06-22
      • 2013-05-01
      • 1970-01-01
      • 2013-08-07
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多