SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Java EE 6 開発入門

JSF2の画面でAjaxの非同期通信を作る

JavaEE6 開発入門(4)


  • このエントリーをはてなブックマークに追加

ダウンロード 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用の標準サーブレットが内部で呼び出されているので、特に必要ありません。

図1 FaceletsとManagedBeanの概念図
図1 FaceletとManagedBeanの概念図

 ManagedBeanとは、今回取り扱うJavaEEクラスの1つで、JSFが管理するコンポーネントとして宣言されたクラスです。NetBeans6.9で作成する際には特に設定ファイルを記述する必要ありません。生成されるコードについては後ほど取り上げます。

 なお、@NamedアノテーションはJSFの機能ではなく、JavaEE6で採用されているCDI(Contexts And Dependency Injection)の機能です。NetBeans6.9ではCDIの機能がはじめから組み込まれており、このCDIによりJavaEEのコンポーネントも注入されますので、@NamedでCDI管理と定義したManagedBeanもJSFから参照できるようになります。これによりボタンの押下やフォームの送信など、イベントの発生や監視による疎結合方式の通信が可能になります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
今回作成するアプリケーションについて

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 東 浩二(アズマ コウジ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6050 2011/11/02 17:21

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング