2012-03-01 47 views
0

我無法嘗試在HTML中打印表格,以便將項目顯示在正確的位置。目前我有這個。這將以一種列表形式打印數據,因此所有內容都位於單獨的列上。如何正確打印此表格HTML/Java網絡應用程序

    <table border=0 width="75%"> 

         <% 
            for (int pos = 0; pos < list.size(); pos++) { 
             Menu menu = list.getMenuAt(pos); 
         %> 

         <tr> 
          <tr width="80%"> 
          <b>Title:</b><br> 
          <b>Dish:</b><br> 
          <b>Description:</b><br> 
          <b>Price:</b><br><br> 
          </tr> 
         </tr> 
         <tr> 
          <td width="80%"> 
           <%= menu.getTitle()%> <br> 
           <%= menu.getDish()%> <br> 
           <%= menu.getDescription()%> <br> 
           <%= menu.getPrice()%> <br><br> 
          </td> 
         </tr> 

         <% 
            } // end for 
         %> 

        </table> 

該菜單可以有一個標題與許多菜的名稱,菜的描述和價格。

+0

你可能需要提供爲你提供更多的信息期待桌子看起來像。 – dougajmcdonald 2012-03-01 10:36:17

+0

請將數據處理與視圖分開嗎?請參閱http://programmers.stackexchange.com/questions/87686/nested-languages-code-smell – Jayan 2012-03-01 10:42:49

回答

1

我不明白你爲什麼在<td>元素內有<br/>。您的代碼將分開的東西每個提交這樣的:

Title: 
Dish: 
Description: 
Price: 

text 
text 
text 
text 

我覺得你的代碼shuold是這樣的:

<table border=0 width="75%"> 

<thead> 
    <tr> 
     <th>Title</th> 
     <th>Dish</th> 
     <th>Description</th> 
     <th>Price</th> 
    </tr> 
</thead> 
<% 
      for (int pos = 0; pos < list.size(); pos++) { 
       Menu menu = list.getMenuAt(pos); 
%> 

<tbody> 
    <tr> 
     <td><%= menu.getTitle()%></td> 
     <td><%= menu.getDish()%></td> 
     <td><%= menu.getDescription()%></td> 
     <td><%= menu.getPrice()%></td> 
    </tr> 
</tbody> 

<% 
      } // end for 
%> 

1

你不能有一個<tr>嵌套在<tr>內。這些是表格行。將這些更改爲表格單元格的<td>

<tr> 
    <td width="80%"> 
    <strong>Title:</strong><br/> 
    <strong>Dish:</strong><br/> 
    <strong>Description:</strong><br/> 
    <strong>Price:</strong><br><br/> 
    </td> 
</tr> 

此外,使用<strong>從HTML 4和關閉<br/>標籤,但這些大多是迂腐:)

編輯:

在你的代碼看,我想你想要的是一個頭然後執行for循環,並在for循環中爲每個對象填充單個「菜單」項。試試這個:

<table border="0" width="75%"> 
    <!-- Table header --> 
    <tr> 
     <td><strong>Title:</strong></td> 
     <td><strong>Dish:</strong></td> 
     <td><strong>Description:</strong></td> 
     <td><strong>Price:</strong></td> 
    </tr> 

<% 
    for (int pos = 0; pos < list.size(); pos++) { 
     Menu menu = list.getMenuAt(pos); 
%> 

    <!-- Table contents --> 

    <tr> 
     <td><%= menu.getTitle(); %></td> 
     <td><%= menu.getDish(); %></td> 
     <td><%= menu.getDescription(); %></td> 
     <td><%= menu.getPrice(); %></td> 
    </tr> 

<% 
    } // end for 
%> 

</table> 

你只想用「標題」,「菜」等一度高達頂部的標題,然後運行for循環,並添加後的行。請注意,每行在單獨的單元格上都有該字段,這就是應該如何分隔製表數據的方式。我會建議使用CSS的樣式,最好是包含一個外部CSS文件。

+0

並且在for循環開始之前移動表格標題,我的猜測是您不想重複標題 – Kennet 2012-03-01 10:47:56

+0

也意識到他們並沒有將每個領域都分開一個單獨的​​,這會導致一切不一致 – 2012-03-01 10:53:03

相關問題