ダウンロード SampleWebApp.zip (26.7 KB)
本連載は、Java Enterprise Edition 6(Java EE 6)の導入方法をはじめとして、新導入された仕様や概念を紹介していきます。今回も前回に引き続き、JSF(JavaServer Faces)を取り上げます。
はじめに
本稿では、Java Enterprise Edition 6のプレゼンテーションの基本となるJSF(JavaServer Faces)の送信機能と、Ajaxの扱い方について紹介します。
対象読者
- JavaEE6開発に興味がある方
- これからJavaのWebアプリケーション開発をはじめる方
必要な環境
動作環境は以下のとおりです。
- Java SE 6
- NetBeans 6.9.1
フォームの送信をJSF2のAjax機能で行う
今回紹介するJSF2でのAjax機能で使われている基本の技術について、簡単におさらいします。
フォームの送信とAjax
Webアプリケーションは、利用ユーザーからの入力情報をサーバへ送信し、その結果を画面へ返すまでをひとつのサイクルとしています。送信するデータをくくるHTMLタグは<form>で、フォームと呼ばれます。この<form>と</form>で囲まれた内容をサーバへ送信します。サーバへの送信は送信ボタン<input type="submit">を押すことで行われ、この送信ボタンを押すとサーバで処理された結果画面がブラウザへ返され、サーバでの処理結果の画面が表示されます。
一方、Ajaxとは、サーバとの通信をフォームの送信を使わず、JavaScript内で非同期に送受信を行う仕組みです。先ほどのフォーム送信との大きな違いは、サーバから受け取るのは画面ではなく結果データのみになることです。そのデータを受け取って、JavaScriptで現在表示している画面の一部を変更することで、フォーム送信した場合と同様に振る舞うことができます。
JSF2でAjaxするために必要なファイル
JSF2でのAjax機能は、Faceletsを利用することで簡単に実装できます。他のライブラリを導入する必要も、またJavaScriptを組む必要も一切ありません。宣言部に1行追加するだけで利用できます。
JSF2でAjaxを使ったアプリケーションを作るために必要なファイルは、次の2つだけです。
- Facelets(XHTMLファイル)
- ManagedBean(JavaEEクラス)
今回、サーブレットは使いません。Faceletsを呼び出す際のURLに「/facelet/」を付けることで、サーバではFacelets用の標準サーブレットが内部で呼び出されているので、特に必要ありません。
ManagedBeanとは、今回取り扱うJavaEEクラスの1つで、JSFが管理するコンポーネントとして宣言されたクラスです。NetBeans6.9で作成する際には特に設定ファイルを記述する必要ありません。生成されるコードについては後ほど取り上げます。
なお、@NamedアノテーションはJSFの機能ではなく、JavaEE6で採用されているCDI(Contexts And Dependency Injection)の機能です。NetBeans6.9ではCDIの機能がはじめから組み込まれており、このCDIによりJavaEEのコンポーネントも注入されますので、@NamedでCDI管理と定義したManagedBeanもJSFから参照できるようになります。これによりボタンの押下やフォームの送信など、イベントの発生や監視による疎結合方式の通信が可能になります。
- 修正履歴
-
- 2011/08/07 21:42 faceletはfaceletsの誤記ですのでfaceletsへ訂正。また、@Namedについての補足説明(CDI)を追加しました。
この記事は参考になりましたか?
- Java EE 6 開発入門連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 東 浩二(アズマ コウジ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
