ICEfacesとは、Java開発者向けのWebアプリケーションフレームワークである。このフレームワークを用いると、開発者はJavaScriptを記述することなしに、Ajaxアプリケーションを構築することが可能となる。

前稿、「【ハウツー】JavaScriptの記述が不要! Java開発者向け本格的AjaxフレームワークICEfaces」では、ICEfacesのデモアプリケーションを動作させながら、ICEfacesの基本的なアーキテクチャについて説明した。本稿では、JSFの基本的な知識があることを前提に、前稿にて十分に紹介できなかったICEfacesのコンポーネントについて紹介したい。

本稿の前半では、ICEfacesの提供するコンポーネントとはどのようなものであり、どのようなコンポーネントが用意されているのかについて紹介する。また、コンポーネントを用いた開発を容易にする開発環境についても紹介する。本稿の後半では、ICEfacesのコンポーネントがどのように作成されているのかについて紹介する。JSFをAjaxに対応させるために、ICEfacesがJSF標準のアーキテクチャを大きく拡張しなければならなかったのが、レンダリングである。ICEfacesにおけるレンダリングは「D2D(Direct-to-DOM)レンダリング」と呼ばれており、ICEfacesの最も大きな特徴のひとつである。本稿の最後には、このD2Dレンダリングの詳細について説明し、その中で、ICEfacesのレンダラクラスがどのように振舞うのかについて説明する。

本稿執筆時の公式リリース(Certified Release)の最新バージョンは1.6.2であるが、本稿では1.6.1を対象とする(最新版のバイナリは、商用サポートの対象者か、コミュニティのコントリビュータのみが利用可能であるため)。なお、ソースコードについては、最新版の1.6.2を、SVNのリポジトリからダウンロード可能である