ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

Java Server Faces 1.2



Java Server Faces 1.2のパブリックプレビューが公開されました。
今回のポイントは何と言ってもJSP2.1と合わせての両者の整合性に
関する改善ではないかと思います。JSFJSPのテクノロジーを暗黙的
にベースとして利用していながら、実際のコーディング場面においては
両者は別物として扱われており、場合によっては面倒な問題を起こして
いました。


例えば以下のようなコードがあったとします。

<%@ page contentType="text/html" %><%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

テストページ




JSPにベタ書きしたテキスト



これを実行すると、

JSPにベタ書きしたテキスト
JSFタグ内のテキスト
というようにソースとは逆順で表示されてしまいます。これを防ぐためには





JSPにベタ書きしたテキスト


というようにverbatimタグで囲ってあげないといけません。
これはコンテンツのレンダリングやバッファへの書き込みのタイミングが
JSFJSPとで異なるために生じるものなのですが、他にもJSTLのタグと
JSFのELが混在できなかったりなど不便なことがいろいろとありました。
こうしたことがあるので、ボクの場合にはJSFJSPは別物と割り切って
考えるようにしています。とは言え、JSFのカスタムタグを作成する際には
JSPカスタムタグの知識や作法が必須だったりもするので、JSFJSP
中途半端に依存しているといった印象がどうしても拭えませんでした。


JSF1.2ではJSTLとの互換性やJSTLJSFのELを統合した「Unified EL」という
ものも提供されるということで、(というか、「javax.el」という独立した
パッケージとなるようです)上記のような問題も解決されるとのことです。
とはいっても、いきなりJSPとの親和性が飛躍的に改善されるとも思えないので
何ができて何ができないのかについてスペックを事細かにチェックする作業は
覚悟しておかなければなりませんね(^^)
パブリックプレビューではリファレンスインプリメンテーションも提供されて
いますが、JSP2.1との互換性に関する部分は完全ではないとのことで、上記の
部分がどの程度改善されているかを実際にコードを動かして試すことができる
のはもう少し先になりそうです。


いずれにしても、JSFのコーディングスタイルが大きく変わる可能性があるので
これからJSFを始めるといった場合には現行のJSF1.1ベースとするのか、JSF1.2
を待つのかはタイミングを見計らった方が良いかと思われます。


最後に余談ですが、以前に「Ajaxで提供されているJavaScriptコードをJSF
コンポーネントでラッピングすれば、使う側にとっては便利ではないか」とい
ったことを前に書きましたが(http://d.hatena.ne.jp/dufresne/20050418)
現在のJSFのco-spec leadであるEd Burns氏のBlogでAjaxベースのプログレ
バーをJSFでラッピングした例が紹介されていました。
http://weblogs.java.net/blog/edburns/archive/2005/05/ajaxian_faces_p.html
こうした例が増えるとJSFによるUIコンポーネントAjaxとの兼ね合いが面白く
なってきそうです。