JakartaEE(JavaEE)

JSFプロジェクトで一覧画面を表示してみた

JSTLは「JSP Standard Tag Library」の略で、JSP内でよく使われる機能をタグライブラリとしてまとめたものであるが、JSF内のXHTMLファイル内でも、JSTLを利用することができる。

今回は、JSTL coreタグを利用した、一覧画面を表示してみたので、そのサンプルプログラムを共有する。

なお、JSTL coreタグライブラリの詳細は、以下を参照のこと。
https://qiita.com/sculptcat/items/53d1a3a2d3b973354085

前提条件

以下の記事の実装が完了していること。

JSFプロジェクトでJPAによるDB接続処理を追加してみたJakartaEE(旧称:JavaEE)では、JSF(JavaServer Faces)というJavaベースのWebアプリケーションフレ...

サンプルプログラムの作成

作成したサンプルプログラムの構成は、以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加・変更したプログラムである。

一覧画面(list.xhtml)の内容は以下の通りで、JSTL coreタグ(c: http://xmlns.jcp.org/jsp/jstl/core)を利用している。

また、一覧画面を表示する処理を定義したクラスは以下の通りで、初期表示処理(initialize)に加え、入力画面に遷移する処理(toAdd)・他の画面から一覧画面に遷移する処理(toList)を定義している。

さらに、一覧画面に表示するデータを取得するクラスは以下の通りで、 USER_DATAテーブルの全件を取得する処理(getAll)を定義している。

また、入力画面(input.xhtml)の内容は以下の通りで、戻るボタンを追加している。

さらに、完了画面(complete.xhtml)の内容は以下の通りで、一覧画面に戻るためのボタンを追加している。

また、faces-config.xmlの内容は以下の通りで、一覧画面・完了画面からの画面遷移を追加している。

さらに、web.xmlの内容は以下の通りで、初期表示を入力画面(input.xhtml)から一覧画面(list.xhtml)に変更している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/javaee-jsf-show-list/demoJsf



「Envader」はLinuxコマンドやDatabase SQL等のスキルを、環境構築不要で習得できる学習サイトだった「Envader」は、ITエンジニアとしてよく使うLinuxコマンドやDatabase SQL等のスキルを、解説を読んだ上で、問題を解き...

サンプルプログラムの実行

サンプルプログラムの実行結果は以下の通りで、USER_DATAテーブルから取得したユーザーデータが一覧画面に表示され、データの追加も行えることが確認できる。

1) 実行前のUSER_DATAテーブルの中身は、以下の通り。

サンプルプログラムの実行結果_1

2) GlassFishサーバーを起動後、Webブラウザ上で「http:// (ホスト名):(ポート番号)/(Webアプリケーションのプロジェクト名)/」とアクセスすると、以下のように、user_dataテーブルの中身が一覧画面(list.html)に表示されることが確認できる。ここで「データ追加」ボタンを押下する。
サンプルプログラムの実行結果_2

3) 以下のように、入力画面の表示が確認できる。ここで「戻る」ボタンを押下する。
サンプルプログラムの実行結果_3

4) 以下のように、一覧画面(list.html)に戻ることが確認できる。
サンプルプログラムの実行結果_4

5) 入力画面(input.html)、確認画面(confirm.html)、完了画面(complete.html)の遷移は以下の通りとなっている。また、完了画面で「一覧画面に戻る」ボタンを押下すると、一覧画面(list.html)に戻ることが確認できる。
サンプルプログラムの実行結果_5_1

サンプルプログラムの実行結果_5_2 サンプルプログラムの実行結果_5_3 サンプルプログラムの実行結果_5_4

6) 実行後のUSER_DATAテーブルの中身は、以下の通り。

サンプルプログラムの実行結果_6

7) USER_DATAテーブルを0件にした状態で、一覧画面を表示した結果は、以下の通り。

サンプルプログラムの実行結果_7_1 サンプルプログラムの実行結果_7_2

要点まとめ

  • JSTLは「JSP Standard Tag Library」の略で、JSP内でよく使われる機能をタグライブラリとしてまとめたものであるが、JSF内のXHTMLファイル内でも、JSTLを利用することができる。
  • 画面の初期表示時に呼び出すメソッドは、JSF 2.2の場合、f:metadata要素内のf:viewAction要素内で定義すればよい。
  • フォームの各項目値の入力チェックを省いて画面遷移するには、JSFのh:commandButtonタグで「immediate=”true”」を追加すればよい。