JavaのWebアプリで一覧を表示するには?JSPでデータからHTMLを作る仕組み|確認問題の回答例

このページは、JavaのWebアプリで一覧を表示するには?JSPでデータからHTMLを作る仕組みの確認問題の回答例です。
問題1:画面に表示される3行
| 商品名 | 在庫数 | 状態 |
|---|---|---|
| ノート | 2 | 在庫あり |
| ペン | 0 | 売り切れ |
| ふせん | 1 | 在庫あり |
この設問では本文の product.getStockCount() > 0 の条件を使います。在庫が1個でも2個でも「在庫あり」です。問題3で条件を書き換えるまでは「残りわずか」は表示されません。
問題2:ペンの行のHTML
<tr>
<td>ペン</td>
<td>0</td>
<td>売り切れ</td>
</tr>
ブラウザへ送られる時点では、JSPの式やif文はサーバー側で実行済みです。<%= product.getStockCount() %> などのコードではなく、値の 0 と選ばれた表示「売り切れ」が入ります。
問題3:残りわずかの条件を追加する
<% if (product.getStockCount() == 0) { %>
売り切れ
<% } else if (product.getStockCount() <= 2) { %>
残りわずか
<% } else { %>
在庫あり
<% } %>
在庫数は0以上という前提です。最初に0を判定しているので、次の <= 2 に進むのは1個以上の場合です。そのため1〜2個が「残りわずか」、残りの3個以上が「在庫あり」になります。
| 在庫数 | 変更後の表示 |
|---|---|
| 0 | 売り切れ |
| 1 | 残りわずか |
| 2 | 残りわずか |
| 3 | 在庫あり |
問題の3件に適用すると、ノートとふせんは「残りわずか」、ペンは「売り切れ」です。条件式の書き方が違っても、同じ区分で判定できていれば正解です。
問題4:データが0件の場合
商品の行は0行です。products が空なので、拡張for文の中の <tr> は一度も出力されません。products.size() は0、products.isEmpty() はtrueになります。
このサンプルでは「全0件」と表の見出しが残り、表の下に「表示する商品がありません。」と表示されます。商品の行と、見出しの行を区別して考えてください。