2012-03-01 2 views
0

HTMLで表を印刷しようとすると、項目が適切な場所に表示されません。現時点で私はこれを持っています。これにより、すべてのデータが別々の列に表示されるように、データが一種のリストに印刷されます。この表を正しく印刷する方法HTML/Java Webアプリケーション

    <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

あなたはおそらく何のように、ビットより多くの情報を提供する必要があります:私はあなたのコードは、このようなことshuold考える

Title: Dish: Description: Price: text text text text 

:あなたのコードは次のように提起された各を分離しますテーブルのように見えています。 – dougajmcdonald

+0

ビューからデータ処理を分離してください。 http://programmers.stackexchange.com/questions/87686/nested-languages-code-smell – Jayan

答えて

1

<td>要素の中になぜ<br/>があるのか​​わかりません。

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

、HTML 4から<strong>を使用して<br/>タグを閉じますが、これらは主に知識をひけらかすです:)

EDIT:

はあなたのコードを見てみると、私が何をしたいことは、ヘッダだと思います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> 

あなたは一度トップアップ「タイトル」、「料理」などとヘッダをしたいだけだろうと、ループのために実行し、それ以降の行に追加します。各行に別々のセルにフィールドがあることに注意してください。これは、表形式のデータをどのように分離するかです。 CSSを使用してスタイリングすることをお勧めします。外部のCSSファイルを含めることをおすすめします。

+0

を参照してくださいまた、forループの開始前にテーブルの見出しを移動してください、私の推測では、見出しを繰り返さないようにしています – Kennet

+0

また、彼らは別々の各フィールドを持っていなかったことに気づいた​​ –

関連する問題