Java 如何将Enumeration.elements()输出转换为HTML表
晚上好,我正在尝试在HTMLJava 如何将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.
中显示哈希表的输出,而不是使用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>