Jakarta EE 10 の学習 - address-book の理解1 -

記事
IT・テクノロジー
前回の記事でビルドと実行を試みた address-book アプリケーションのソースファイルの理解を複数回に分けて進めていく。
今回はこのプロジェクトのディレクトリ構成とリソースバンドル等について説明する。

プロジェクトディレクトリの構成

address-book プロジェクトを開いたときのディレクトリ構成は下の画像のようになっている。
address-book.png
ディレクトリのルートに pom.xml ファイルがあることから、このプロジェクトが Maven プロジェクトであることが分かる。(pom.xml はプロジェクト管理ツールである Apache Maven で使われるプロジェクトの設定ファイル)

この pom.xml ファイルでは下記のように packaging エレメントで war が指定されている。
  <packaging>war</packaging>
結果としてこのプロジェクトをビルドすると address-book.war という WAR アーカイブファイルが生成される。

プロジェクトの各ファイルがWAR ファイルの中でどのように配置されるのかを確認しておく。mavenの下記のページに情報がある。
URL:  maven.apache.org/plugins/maven-war-plugin/usage.html

プロジェクトの各ディレクトリからのWAR ファイルでの配置先は下記の通りに整理できる。
src
└── main
    ├── java/        --> コンパイルされて /WEB-INF/classes/ 以下に配置される
    ├── resources/   --> /WEB-INF/classes/ 以下に配置される
    └── webapp/      --> / (ルート)以下に配置される

ビルドで生成されたWAR ファイル内の構成を見ることで、実際に上記のような配置の仕方になっていることを確認できる。
build_dir.png

web.xml ファイル

src/main/webapp/WEB-INF/ ディレクトリにある web.xml ファイルでは Jakarta Faces アプリを作るためのサーブレットの設定等を記述している。
詳細はJakarta Faces についての以前の記事で紹介しているので、そちらを参照のこと。

faces-config.xml ファイル

src/main/webapp/WEB-INF/ ディレクトリにある faces-config.xml ファイルは、Jakarta Faces のアプリケーションコンフィギュレーションリソースと呼ばれるファイルで、アプリケーションの設定に使われる。
このアプリケーションでは、下記のように <resource-bundle> エレメントでリソースバンドルを定義するために使用している。

        <resource-bundle>
            <base-name>/Bundle</base-name>
            <var>bundle</var>
        </resource-bundle>

base-name エレメントの値である /Bundle は、WARファイルの WEB-INF/classes ディレクトリにある Bundle.properties ファイルのことを指している。
var エレメントの値 bundle は、Faces ページ中で EL expression を使ってこのリソースバンドルを参照するときの変数名となる。

Bundle.properties ファイルの中身は下の画像のように、key=value の形式で構成されている。
Bundle.png

Faces ページ (xhtml ファイル)の中で、例えば ContactCreated という key の値である "Contact was successfully created." を使用するときは #{bundle.ContactCreated} のようにすれば良い。

因みにソースファイルにはもうひとつのリソースバンドルファイルである ValidationMessages.properties ファイルが含まれている。このファイルは faces-config.xml でリソースバンドルとして定義する必要はなく、フォーム入力値のエラーメッセージのリソースとして使用される。
具体的には電話番号とメールアドレスの入力値が有効でない場合のメッセージとして使われる下記の2つのデータが含まれている。
message.png
Java ソースファイルの Contact.java の中身を見ると、これらの値を参照していることが分かる。

Jakarta EE 10 対応
この faces-config.xml のスキームファイルのバージョンは 3.0 となっているが、これは Jakarta EE 9 に対応するものなので、Jakarta EE 10 ではバージョン 4.0 に変更するのが正しい指定と思われる。(web.xml も同様にバージョン6.0とする)

Faces ページ

この address-book アプリケーションは、Jakarta Faces アプリケーションとして、下記の6つの Jakarta Faces ページ(xhtml ファイル)が含まれている。
次回の記事ではこれらのファイルの理解を進める。

index.xhtml
template.xhtml
contact/Create.xhtml
contact/Edit.xhtml
contact/List.xhtml
contact/View.xhtml

参考資料:
"Jakarta Faces 4.0 Specification Document"
"Jakarta Bean Validation 3.0 Specification Document"
The Jakarta EE Tutorial (URL:  eclipse-ee4j.github.io/jakartaee-tutorial/)

コメント: 記事内の情報は著者が個人的に調べた範囲で理解しているものです。必要に応じて訂正する場合があります。記事中に含まれるURL はプロトコルを含めると禁止ワードに引っ掛かるので省いています。

著者・投稿者: ENARTS05
編集履歴:
2023/10/28 作成








サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す