2009-11-13 39 views
0

我有一个ArrayList,我想在一个表中ArrayList的表在JSP

显示它.....

ArrayList的行数= ....

.... 。

<table cellspacing="1" cellpadding="4" border="3"> 
     <tr> 
      <TH> 
       Heading1 
      </TH> 
      <TH> 
       Heading2 
      </TH> 
      <TH> 
       Heading3 
      </TH> 
      <TH> 
       Heading4 
      </TH> 
      <TH> 
       Heading5 
      </TH> 
      <TH> 
       Heading6 
      </TH> 
      <TH> 
       Heading7 
      </TH> 
     </tr> 

     <tr> 
      <% for (int i = 0; i < rows.size(); i++) { 
       for (int j = 0; j < 7; j++) { 
      %> 
      <td> 
       <center> 
        <% out.println(????? ); %> 
       </center> 
      </td> 
      <% } %> 
     </tr> 
     <% } %> 
    </table> 

但我无法正确显示正确的数据。

+0

你的数组列表结构如何? – 2009-11-13 14:01:30

+1

你在问什么?部分,还是你问为什么它不正确显示?如果是后者,我注意到你的开放TR标签需要在第一个循环内进行。 – Jeff 2009-11-13 14:03:00

回答

2

嗯,对于一件事,我怀疑你的外环应该从<tr>标签开始。

除此之外,一个ArrayList是一维结构(毫不奇怪,因为它是一个列表)。试图在表格中显示这些数据意味着它是二维的,但是没有泛型,没有给出有关列表中包含的信息的信息。

我会处理这个事情是这样的:

/* header rows */ 

     <% for (int i = 0; i < rows.size(); i++) { 
      Object rowObj = rows.get(i); 
     %> 
     <tr> 

      <% for (int j = 0; j < 7; j++) { 
       // This RHS made up due to not knowing the class of objects 
       // in your map, use something equivalent 
       Object cell = rowObj.getEntry(j); 
      %> 
      <td> 
       <center> 
        <%=cell.toString()%> 
       </center> 
      </td> 
      <% } %> 
     </tr> 
     <% } %> 
1

这是使用JSP taglibs的完美场景。在jsptags.com有一个可用的tablibs的巨大列表这样HTML将是非常可读的,但你会有你的动态表。

0

正如其他人已经指出,你会想使用标签,而不是使用脚本自己生成一个表。好处是我比在这里列出更多。我会建议看看Display tag library。它使得从任何Collection生成表格变得轻而易举。

<display:table name="rows"> 
    <display:column property="id" title="ID" /> 
    <display:column property="name" /> 
    <display:column property="email" /> 
    <display:column property="status" /> 
    <display:column property="description" title="Comments"/> 
</display:table> 

当然,每列都会引用您在ArrayList中拥有的对象的属性。

0

您可以使用核心JSTL库(从http://jakarta.apache.org/site/downloads/downloads_taglibs.html下载)。

将jstl.jar和standard.jar库从此分发包括到您的类路径中。然后将指令<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>放置在您的jsp文件的顶部。并使用像这样的结构:

... 
<br/> 
<table><br/> 
<c:forEach items="${rows}" var="row"><br/> 
<tr><br/> 
<c:forEach items="${row}" var="column"><br/> 
<td><br/> 
<c:out value="${column}"/><br/> 
</td><br/> 
</c:forEach><br/> 
</tr><br/> 
</c:forEach><br/> 
</table><br/> 
...