Java 如何将Enumeration.elements()输出转换为HTML表

Java 如何将Enumeration.elements()输出转换为HTML表,java,html,enumeration,Java,Html,Enumeration,晚上好,我正在尝试在HTML中显示哈希表的输出,而不是使用System.out.print。问题是,我不知道确切的方法。我尝试了几种方法,但我仍然不理解如何做的逻辑。我试过这样的方法: 示例代码 public void printHtmlData() { Hashtable htmlData = new Hashtable(); ..... ..... Enumeration enumeration = htmlData.elements(); while (enumeration.

晚上好,我正在尝试在HTML
中显示哈希表的输出,而不是使用
System.out.print
。问题是,我不知道确切的方法。我尝试了几种方法,但我仍然不理解如何做的逻辑。我试过这样的方法:

示例代码

public void printHtmlData() {
Hashtable htmlData = new Hashtable();

.....
.....

Enumeration enumeration = htmlData.elements();
    while (enumeration.hasMoreElements()) {
        System.out.println(enumeration.nextElement());
    }

}
带有
System.out.print的输出

[I|desperately, need, a, girl, haru, haru, big, bang, the, best]
[I|123, 456, a, girl, haru, haru, big, bang, the, best]
[I|desperately, need, 789, 000, haru, haru, big, bang, the, best]
[I|desperately, need, a, girl, just, a, sample, output, for, testing]
我尝试在另一个jsp文件中对html输出执行此操作

<jsp:useBean ....."/>
Hashtable printHtml = new Hashtable();
          <TABLE width="100%" style="border-width : 2px 0px 0px 0px;border-style : solid solid solid solid;border-color : #C0C0C0 #C0C0C0 #C0C0C0 #C0C0C0;">
            <TR>
              <TD><%
                    printHtml.printHtmlData();
              %></TD>
            </TR>
          </TABLE>

正确的方法是让servlet用您的模型
哈希表
填充
HttpServletRequest
,并将其转发给JSP。(也可以考虑使用<代码> HashMap <代码> >)< /P> 在Servlet中:

然后在JSP中使用EL和JSTL标记:


${list.key}
${listItem}

根据您的评论,我认为您还不了解JSTL。Ravi Thapliyal的答案是通过分离业务逻辑和表示来实现这一点的正确方法。查看更多信息。无论如何,由于您使用的是scriplets,您可以简单地将逻辑移到HTML中,然后使用隐式
out
对象来显示您的内容(同样,请记住,如果您试图将业务逻辑与表示混为一谈,这不是一个好方法)。您可以使用下面的伪代码作为指导。如果您想以某种方式格式化,请根据需要修复HTML。是的,如果同步不是问题的话,请考虑使用HASMAP。你可以从这里开始

伪代码



很抱歉,我对Scriptlet有些生疏,但是您是否尝试过简单地将打印代码移动到html中?因为您使用的是scriplets,所以在打印感兴趣的地图值时,可以使用
out
对象来呈现一些html标记。不过,我应该说,将逻辑放在视图中不是一件好事。你真的想把你的顾虑分开。考虑使用完整的JSP,并参考这一个更好的答案Ya,我会通过它…谢谢……别动。我来告诉你该怎么做。你看起来迷路了,但还是继续练习吧。
Hashtable nonHtmlData = new Hashtable();

// populate the map; set as request attr
request.setAttribute("model", nonHtmlData);

// forward to JSP
RequestDispatcher view = request.getRequestDispatcher("display.jsp");
view.forward(request, response);
<table>
    <c:forEach var="list" items="${model}">
        <tr>
            <th>${list.key}</th>
        <c:forEach var="listItem" items="${list.value}">
            <td>${listItem}</td>
        </c:forEach>
        </tr>
    </c:forEach>
</table>
<table>
    <tr>
        <% while (enumeration.hasMoreElements()) { %>
           <td><%= enumeration.nextElement() %></td>  
         <%}%>
    </tr>
</table>