关于java:如何将scriptlet转换为jstl标记

How to convert scriptlets into jstl tags

本问题已经有最佳答案,请猛点这里访问。

我试图将这些脚本转换成JSTL标记,但没有成功,使用这些代码行是否不可行,如果可以,怎么做?谢谢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%
        //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。我不知道您是否使用任何框架来实现这一点,但是在Spring MVC之类的框架中这是很容易的。

在你的例子中,你应该在Java中创建一个bean,它需要你所需要的属性,比如IS目录、长度、文件名等等。然后你创建一个bean的列表,并将其传递给JSP。最后,您只需使用jstl的foreach循环(http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/foreach.html)迭代JSP中的bean列表。你可以在谷歌上搜索,你会找到很多关于如何做到这一点的例子。

这样做不需要使用脚本。