2017-08-18 6 views
0

サーブレットでHTML表を印刷しようとすると混乱するバグがあります。最後の行は4/8要素を印刷して停止しています。最初の7行は問題ありません。これは8行目と実質的に同じです。ここでJavaサーブレットが表の途中で印刷を停止します

は私のJavaコードです:

... 
out.println("<tr>"); 
j = 0; 
for (int i=56; i<64; i++){ 
    j++; 
    Integer.toString(j); 
    out.println("<td "); 
    if (seats[i].label.equals(label)){ 
     seats[i].booked = true; 
     seats[i].id = id; 
     seats[i].phone = phone; 
     seats[i].address = address; 
     seats[i].email = email; 
    } 
    if (!seats[i].booked){ 
     out.println("bgcolor='#7CFC00'"); 
    } 
    out.println("><a"); 
    if (!seats[i].booked){ 
     out.println(" href='Booking?label=H"+j+"'"); 
    } 
    out.println(">H"+j+"</a></td>"); 
} 
out.println("</trr"); 

そして、ここでは私のブラウザからの結果のHTMLコードです:

... 
<tr> 
<td bgcolor="#7CFC00"><a 
href="http://localhost:8080/assignment1/Booking? 
label=H1">H1</a></td> 
<td bgcolor="#7CFC00"><a 
href="http://localhost:8080/assignment1/Booking? 
label=H2">H2</a></td> 
<td bgcolor="#7CFC00"><a 
href="http://localhost:8080/assignment1/Booking? 
label=H3">H3</a></td> 
<td bgcolor="#7CFC00"><a 
href="http://localhost:8080/assignment1/Booking? 
label=H4">H4</a></td> 
</tr></tbody></table> 

座席の配列の長さは100であるので、十分なスペースがあってもそこにあります要素が表示されない理由です。ループは8回実行され、前の7つのループが正常に実行されたときに残りの4つの必要な要素が表示されます。私は正直なところで困惑しており、遅すぎる前に最初のサーブレットの割り当てを行う必要があるので、いくつかの助けが大好きです。

答えて

0

を使用してみてください:

//Deseriailzing seating 
      /*try { 
       FileInputStream fileIn = new FileInputStream("seating.ser"); 
       ObjectInputStream in = new ObjectInputStream(fileIn); 
       seats = (Seat[]) in.readObject(); 
       in.close(); 
       fileIn.close(); 
      } catch (IOException i) { 
       i.printStackTrace(); 
       out.println("IOException i"); 
       //return; 
      } catch (ClassNotFoundException c) { 
       out.println("Employee class not found"); 
       c.printStackTrace(); 
       //return; 
      }*/ 

// ObjectOutputStream oos = null; 
      //   FileOutputStream fout = null; 

      /*try { 
       FileOutputStream fileOut = new FileOutputStream("seating.ser"); 
       ObjectOutputStream out2 = new ObjectOutputStream(fileOut); 
       out2.writeObject(seats); 
       out2.close(); 
       fileOut.close(); 
       System.out.printf("Serialized data is saved in seating.ser"); 
       }catch(IOException i) { 
       i.printStackTrace(); 
       }*/ 

実行されます。それはうまく働いています。問題はあなたのseating.serファイルまたはコメント付きコードの上にあります。私はここに添付しています

public class Seat { 
    String label,phone,address,email,bookingTime; 
    String id=""; 
    boolean booked; 
} 

出力画面-shot.Pleaseは、以下を参照してください

は、ここで(これはMain.javaで使用)私の席クラスのコードです。 enter image description here

0

問題はout.println("</trr");にあると思います。 (私はseating.serを持っていないので)、私は私のローカルシステムであなたのMain.javaのコードの下にコメントしているout.println("</tr");

+0

お返事ありがとうございます。私はそれを試みました、それは残念ながら違いはありません。 – user8080737

+0

'label' value&とは何かのような全体のコードを見る必要があります。&

タグが開始します。どのようなエラー/例外がありますか? – Raushan

+0

ええ、良い点。 Googleドライブの共有フォルダにプロジェクトのすべてのファイルが保存されています。参照されるコードはMain.javaにあります。私のコードは不必要に長く、構造化されていません。私は、コードをコンパイルしてTomcatでブラウザに開いたので、エラー/例外が何であるか分かりません。サーブレットの例外を表示する方法が不明です。 – user8080737

関連する問題