如何将scriptlet转换为jstl标记

时间:2016-05-22 09:31:19

标签: java jsp jstl file-handling scriptlet

我尝试将这些scriptlet转换为jstl标签但没有成功,这些代码行是不可行的,如果它可以如何呢?感谢

<% 
        //String file = application.getRealPath("C:/science/"); 

        File f = new File("C:/uploads");
        String [] fileNames = f.list();
        File [] fileObjects= f.listFiles();
    %>
    <UL>
    <%
        for (int i = 0; i < fileObjects.length; i++) {
            if(!fileObjects[i].isDirectory()){

    %>
    <LI>
        <A HREF="DownloadServlet?value=<%= fileNames[i] %>"><%= fileNames[i] %><u> Download</u></A>
      <%= fileNames[i] %>
      &nbsp;&nbsp;&nbsp;&nbsp;
      (<%= Long.toString(fileObjects[i].length()) %> bytes long)

    <%
            }
        }
    %>

1 个答案:

答案 0 :(得分:1)

您在脚本中拥有的所有代码都必须在java代码中执行并将其传递给jsp。我不知道你是否使用任何框架来做到这一点,但这在Spring MVC这样的框架中很容易。

在你的情况下,你应该在java中创建一个bean,它包含你需要的属性,如isDirectory,length,文件名等。然后你创建一个这些bean的列表并将它传递给jsp。最后,您只需使用JSTL的forEach循环(http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/forEach.html)在jsp中迭代这些bean列表。你可以谷歌搜索它,你会发现很多关于如何做到这一点的例子。

执行此操作您不需要使用scriptlet。