JakartaEE(JavaEE)

JSFプロジェクトでJavaのstaticメソッドをXHTMLファイルで参照してみた

これまで、XHTMLファイル内でJavaのメソッドを呼び出す場合、呼び出すJavaのクラスに@Namedアノテーションを付与してバッキングビーンを生成してきたが、javax.faces.FACELETS_LIBRARIESにタグライブラリを追加する設定を行うことで、XHTMLファイル内で直接Javaのstaticメソッドを呼び出すことができる。

今回は、XHTMLファイル内で直接Javaのstaticメソッドを呼び出してみたので、そのサンプルプログラムを共有する。

前提条件

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

JSFプロジェクトで会話スコープを利用してみたこれまでこのブログでは、JSFプロジェクトのForm値と画面遷移処理を定義したクラスをセッションスコープで定義してきたが、これを会話スコ...

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

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

コード変換を行うユーティリティクラスの内容は以下の通りで、性別のコード値(“1”, “2”)から性別(“男”, “女”)を取得する処理を、staticメソッドで実行している。

JavaのstaticメソッドをXHTMLファイルで参照できるようにするには、javax.faces.FACELETS_LIBRARIESにタグライブラリを追加する必要がある。そのための設定は、以下の通り。

javax.faces.FACELETS_LIBRARIESにタグライブラリを追加する処理は以下の通りで、web.xmlで設定している。

一覧画面・確認画面・削除確認画面の内容は以下の通りで、性別を表示する際に、追加したタグライブラリのメソッド(getSexValue)を呼び出している。

その他、以下のアクションクラスから、性別のコード値(“1”, “2”)から性別(“男”, “女”)を取得する処理を削除している。

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

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

サンプルプログラムの実行結果は、以下の記事の「サンプルプログラムの実行結果」と同じ結果となる。

JSFプロジェクトで会話スコープを利用してみたこれまでこのブログでは、JSFプロジェクトのForm値と画面遷移処理を定義したクラスをセッションスコープで定義してきたが、これを会話スコ...

例えば、一覧画面の表示内容は以下の通りで、性別が正しく変換されていることが確認できる。
サンプルプログラムの実行結果

要点まとめ

  • XHTMLファイル内で直接Javaのstaticメソッドを呼び出すには、呼び出したいメソッドのタグライブラリの設定を、(任意値).taglib.xmlに追加した上で、web.xml内のjavax.faces.FACELETS_LIBRARIESに、タグライブラリを追加する設定を行えばよい。