JakartaEE(JavaEE)

JBoss Seamアプリケーションで複数画面をもつWebアプリケーションを作成してみた

JBoss Seamとは、Java EEベースで、JSF(JavaServer Faces)からEJB(Enterprise Java Bean) 3.0、JPA(Enterprise Java Bean)まで一貫したコンポーネントモデルで「つなぐ」Webアプリケーション開発用フレームワークで、いくつかのアノテーションを使うだけでEJBとJSFをつなぎ合わせることができるようになっている。

今回は、JBoss Seamアプリケーションで入力画面・確認画面・完了画面の3画面を含み、HTMLオブジェクトとしてテキストボックス・ラジオボタン・チェックボックス等を含むWEBアプリケーションを作成してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事に記載した、JBoss Seamアプリケーションで初期表示画面(input.xhtml)の追加が完了していること。

JBoss Seamアプリケーションで初期表示画面を作成してみたJBoss Seamとは、Java EEベースで、JSF(JavaServer Faces)からEJB(Enterprise Java ...

さらに、以下の手順に従って、Lombokの導入が完了していること。

Eclipse上のJSFプロジェクトでlombokを利用してみたlombokというライブラリを使うと、JavaBeanクラスにおいて、アノテーション付与するだけで、getterメソッド・setterメ...

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

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

入力画面(input.xhtml)、確認画面(confirm.xhtml)、完了画面(complete.xhtml)の内容は、以下の通り。

上記XHTMLファイルは、以下の記事のinput.xhtml、confirm.xhtml、complete.xhtmlのソースコードをそれぞれ流用していて、それぞれ、h:head,h:bodyタグをhead,bodyタグに変更している。また、確認画面のCSSファイル読込方法を変更している。

JSFプロジェクトで複数画面をもつWebアプリケーションを作成してみたJSF(JavaServer Faces)プロジェクトを利用して、JavaベースのWebアプリケーションを作成することができる。 ...

また、各画面のForm値と画面遷移処理を定義したクラスの内容は、以下の通り。

上記Actionファイルは、以下の記事のInputFormAction.javaをそれぞれ流用していて、クラスの先頭に、seamの@Scopeアノテーションと@Nameアノテーションを付与するよう、変更している。また、確認チェックをString型からBoolean型に変更している。

JSFプロジェクトで画面遷移をfaces-config.xmlに集約してみたJSF(JavaServer Faces)プロジェクトでWebアプリケーションを作成する際、これまでは画面遷移を@Namedアノテーショ...

さらに、画面遷移を定義したpages.xmlの定義は以下の通りで、会話スコープの開始・終了タイミングも定義している。

その他、確認画面(confirm.xhtml)で読んでいるCSSファイル、共通ユーティリティクラスの内容は、以下の記事と同じ内容となっている。

JSFプロジェクトで複数画面をもつWebアプリケーションを作成してみたJSF(JavaServer Faces)プロジェクトを利用して、JavaベースのWebアプリケーションを作成することができる。 ...

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/seam-web-somescreen/demoSeam



「FlexClip」はテンプレートとして利用できる動画・画像・音楽などが充実した動画編集ツールだったテンプレートとして利用できるテキスト・動画・画像・音楽など(いずれも著作権フリー)が充実している動画編集ツールの一つに、「FlexCli...

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

サンプルプログラムの実行結果は以下の通りで、画面遷移が行えることが確認できる。

1) JBoss ASサーバーを再起動し、「http://localhost:8082/demoSeam/」とアクセスすると、以下の画面が起動することが確認できる。
サンプルプログラムの実行結果_1

2) 以下のように、データを指定し「確認」ボタンを押下すると、確認画面に入力画面の内容が表示される。さらに「戻る」ボタンを押下すると、入力画面に戻り入力値が復旧されることが確認できる。
サンプルプログラムの実行結果_2_1

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

3) 以下のように、メモを入力しないで「確認」ボタンを押下した場合も、確認画面に入力画面の内容が表示される。さらに「送信」ボタンを押下すると、完了画面に遷移することが確認できる。
サンプルプログラムの実行結果_3_1

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

4) 2)3)の動作で、以下のように、コンソールに赤枠のログが出力されることが確認できる。
サンプルプログラムの実行結果_4

要点まとめ

  • JBoss Seamアプリケーションの画面遷移定義は、pages.xmlで指定する。
  • JBoss Seamアプリケーションのバッキングビーンには、クラスの先頭に、seamの@Nameアノテーションを付与する必要がある。また、スコープの指定は、クラスの先頭に、seamの@Scopeアノテーションを付与することで行う。
  • JBoss Seamアプリケーションで会話スコープを利用するには、バッキングビーンでスコープ指定をすると共に、pages.xmlに、会話スコープの開始・終了タイミングを指定する必要がある。