【问题标题】:How to convert scriptlets into jstl tags [duplicate]如何将scriptlet转换为jstl标签[重复]
【发布时间】:2016-09-19 05:58:24
【问题描述】:

我尝试将这些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)

    <%
            }
        }
    %>

【问题讨论】:

    标签: java jsp jstl file-handling scriptlet


    【解决方案1】:

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

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

    这样做您不需要使用脚本。

    【讨论】: