SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

Java EE 6 開発入門

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

JavaEE6 開発入門(4)


ダウンロード SampleWebApp.zip (26.7 KB)

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

 今回は、ブラウザからユーザー名とパスワードを入力し、その結果をメッセージで返すサンプルアプリケーションを作成しながら、JSF2でAjaxを実装する方法について学んでいきます。また、入力チェックとその結果メッセージの追加のやり方を通して、機能追加の方法を見ていきましょう。

 作成手順は以下の順序になります。

  1. まずは下地となるFacelets(XHTML)を作成する
  2. ManagedBeanを作成する
  3. 作成した(1)(2)を元にして、Ajaxの機能を追加し、確認する
  4. 入力チェック機能を追加する

 今回は(1)から(3)までを行います。

Faceletsを作成する

 まずは画面となるFaceletsを作成します。SampleWebAppのWebページを右クリックし、[新規]-[JSFページ]を選択します。

図2 JSFページの作成(1)
図2 JSFページの作成(1)

 次に、作成するJSFの名称やオプションを定義します。ファイル名を「ajaxsamplejsf」とし、オプションは「Facelets」そのままにして、[完了]を押します。

図3 JSFページの作成(2)
図3 JSFページの作成(2)

 テンプレートから自動生成されたFaceletsが表示されます。

図4 JSFページの作成(3)
図4 JSFページの作成(3)

 Faceletsのベースができたら、入力項目を追加していきましょう。コードは次のようになります。

[リスト1]Faceletファイル ajaxsamplejsf.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>JSF+Ajaxサンプル</title>
    </h:head>
    <h:body>
        <h:form id="form1">
            名前<h:inputText id="username" value="#{user.username}"> …①
            </h:inputText>
            <br />
            パスワード<h:inputSecret id="password" value="#{user.password}"></h:inputSecret> …②
            <br />
            <hr></hr>
            <h:commandButton id="sender" value="送信する"> …③
            </h:commandButton>
            <h:outputText id="result" value="#{user.result}"></h:outputText> …④
        </h:form>
    </h:body>
</html>

 h:の名前の付いたタグについては前回紹介した内容のものです。ではリスト1で印をつけた内容について説明します。

  1. ユーザー名の入力欄
  2. パスワードの入力欄
  3. フォームの送信ボタン
  4. サーバからの処理結果を返す領域(ここは出力されない)

 それぞれのタグで、サーバから値を出力する #{user.○○○○} があります。#{ }で囲まれた内容はサーバからの値を出力する箇所です。userはサーバ側から返されるオブジェクトの名称となり、ドットで繋がれた右側の値は、そのオブジェクトのもつプロパティの値となります。

 では、次ページから、サーバ側からのオブジェクトを用意しましょう。それがFaceletsからアクセスできるManagedBeanです。

次のページ
ManagedBeanを作成する

修正履歴

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6050 2011/11/02 17:21

イベント

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

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

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

メールバックナンバー