【ハウツー】
Ajax4jsfのプロジェクトサイトには成果物以外にデモンストレーション用のWebアプリケーションも用意されている。.warファイルをダウンロードしてデプロイしてみてほしい。Ajaxが実現されることがわかる。以降に動作例を紹介する。
|
|
|
図2.1 Simple Repeator Demo – テキストフィールドに入力する文字が、その下にテキストとして描画される。描画は非同期で部分的であり、ページの再読み込みは発生していない |
図2.2 Simple Repeator Demo – テキストフィールドに入力する文字が、その下にテキストとして描画される。描画は非同期で部分的であり、ページの再読み込みは発生していない |
|
|
|
図2.5 Fruits Selector – チェックボックスを選択すると、内容に応じてほかのチェックボックスの内容が動的に変化する |
図2.6 Drop Down Boxes – コンボボックスの選択の応じてほかのコンボボックスの内容を変化するデモ。実際のWebアプリケーションシステム構築において要求されることが多いインターフェースのひとつ |
|
|
|
図2.7 a4j:mediaOutput – a4j:mediaOutput コンポーネントによって出力される内容の表示例 |
図2.8 Wrapper HTML for Widget – GWTウィジェットを使用するデモンストレーション |
|
|
図2.9 GWT-JSF Integration Library Demo – GWTライブラリを活用して作成されたデモンストレーション。実際にどのようなWebアプリケーションシステムを開発できるか知るうえでは興味深いデモ |
どのデモンストレーションもページの再描画は発生しない。動的に一部分だけが更新される。Ajaxはもはや当り前になった感があるが、これをJavaScriptを使っていちから作るとなるとなかなか面倒だ。
Ajax4jsfを実際にどのように使うかは、デモアプリケーションを参考にするとわかりやすい。なかでもSimple Repeator Demo Webは簡単でわかりやすいだろう。同サンプルは図3.1のようなディレクトリ構造で構成されている。ライブラリやデプロイ、ビルドに必要なファイルなどをのぞけば、実質的には図3.2が必要な部分ということになる。
|
|
|
図3.1 Simple Repeator Demo Webアプリケーションのディレクトリ構造 |
図3.2 Simple Repeator Demo Webアプリケーションのディレクトリ構造 – 本質的な部分 |
Bean.javaはデータを表現しているだけだから、図3.2の場合は実質的にdemo.jspが本体だ。リスト3.3をみるとわかるが、ほとんどはJSFで構成されている。そのなかに一行だけ「<a4j:support event="onkeyup" reRender="repeater" />」があることがわかるが、この部分がAjax4jsfだ。
Ajax4jsfを使うと、JSP PageとJSP Phasesの間に、Ajax EngineとAjax4jsfによるビューの処理が挟まることになる。この部分で自動的に非同期通信と部分再描画を実施するという手順だ。だから間にa4j:support要素をはさんだだけで、Ajax機能が実現されている。1行追加するだけでAjax化完了だ。これは興味深い。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
9ストーリーズ ~バレンタインのエピソード~ [08:05 2/11] キャリア |
|
RX-7改フェラーリ登場!/マジックRX-7XX 【大阪オートメッセ2012】 [08:04 2/11] キャリア |
|
【連載】鉄道トリビア 第137回 山手線と京浜東北線から●●●が消えた!? [08:00 2/11] ライフ |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |
|
「青春18きっぷ」春季用は2/20発売 - 夏季用・冬季用の発売は現時点で未定 [07:30 2/11] ライフ |