如何将 scriptlet 转换为 jstl 标签
How to convert scriptlets into jstl tags
我尝试将这些 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] %>
(<%= Long.toString(fileObjects[i].length()) %> bytes long)
<%
}
}
%>
脚本中的所有代码都必须在 java 代码中执行并将其传递给 jsp。我不知道您是否使用任何框架来执行此操作,但这在 Spring MVC 这样的框架中很容易。
在您的情况下,您应该在 java 中创建一个具有所需属性的 bean,例如 isDirectory、长度、文件名等。然后创建这些 bean 的列表并将其传递给jsp。最后,您只需使用 JSTL (http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/forEach.html) 的 forEach 循环在 jsp 中迭代这些 bean 列表。您可以 google 了解它,您会找到很多关于如何执行此操作的示例。
这样做你不需要使用 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] %>
(<%= Long.toString(fileObjects[i].length()) %> bytes long)
<%
}
}
%>
脚本中的所有代码都必须在 java 代码中执行并将其传递给 jsp。我不知道您是否使用任何框架来执行此操作,但这在 Spring MVC 这样的框架中很容易。
在您的情况下,您应该在 java 中创建一个具有所需属性的 bean,例如 isDirectory、长度、文件名等。然后创建这些 bean 的列表并将其传递给jsp。最后,您只需使用 JSTL (http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/forEach.html) 的 forEach 循环在 jsp 中迭代这些 bean 列表。您可以 google 了解它,您会找到很多关于如何执行此操作的示例。
这样做你不需要使用 scriptlet。