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

时间:2013-07-12 04:04:36

标签: java html enumeration

晚上好,我正在尝试在HTML <table>中显示HashTable的输出,而不是使用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>

我需要一些提示,谢谢...

2 个答案:

答案 0 :(得分:1)

正确的方法是让servlet使用您的模型HttpServletRequest填充HashTable,并将其转发到您的JSP。 (另外,请考虑使用HashMap。)

在Servlet中:

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);

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

<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>

答案 1 :(得分:0)

从您的评论中,我认为您还不知道JSTL。通过分离业务逻辑和表示,Ravi Thapliyal回答是正确的方法。查看Model View Controller了解详情。无论如何,因为你正在使用scriplet,你可以简单地在HTML中移动逻辑然后使用隐式out对象来显示你的内容(再次,请记住,如果你尝试混合业务逻辑,这不是一个好方法与演示文稿)。您可以使用下面的伪代码作为指导。如果要格式化某种方式,请根据需要修复HTML。是的,如果同步不是您的问题,请考虑使用HashMap。你可以从这里开始。

Differences between HashMap and Hashtable?

<强> 伪代码

<table>
    <tr>
        <% while (enumeration.hasMoreElements()) { %>
           <td><%= enumeration.nextElement() %></td>  
         <%}%>
    </tr>
</table>