我在我的 JSP 中定义了一个递归函数-
<%!
public void displayFiles(HashMap files, JspWriter writer) throws IOException {
Iterator iterator;
iterator = files.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry mEntry = (Map.Entry) iterator.next();
if(mEntry.getValue() == null) {
writer.println("<a href=\"DownloadServlet?action=downloadfile&file=" + mEntry.getKey() + "\">" + mEntry.getKey() + "</a>");
writer.println("<br>");
}
}
iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry mEntry = (Map.Entry) iterator.next();
if(mEntry.getValue() != null) {
if(((HashMap) mEntry.getValue()).size() != 0) {
writer.println("---------------------------");
writer.println("<br>");
writer.println("Directory : " + mEntry.getKey());
writer.println("<br>");
writer.println("---------------------------");
writer.println("<br>");
displayFiles((HashMap) mEntry.getValue(), writer); // recursive call
}
}
}
}
%>
它的作用是打印出一个HashMap中包含的目录结构——
<%
map = (HashMap) request.getAttribute("hashmap");
displayFiles(map, out);
%>
错误
org.apache.jk.common.ChannelSocket processConnection
WARNING: processCallbacks status 2
我认为原因是——
那么如何将我的 HashMap 递归打印给用户呢?我的 HashMap 的结构 -
Key | Value
-----------------
File | Null
File | Null
Dir | Nested HashMap ----> Key | Value
File | Null ----------------
Dir | Nested HashMap File | Null
Dir | Nested HashMap
我希望结构清晰。JSP 从控制器 servlet 接收此 HashMap。