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

Schoo Java入門 中級 第4回 Webアプリケーションの動作原理と画面連携

このページは、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件」と表の見出しが残り、表の下に「表示する商品がありません。」と表示されます。商品の行と、見出しの行を区別して考えてください。

元の記事に戻る

JavaのWebアプリで一覧を表示するには?JSPでデータからHTMLを作る仕組み