親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

JSPはもう古い?Faceletsとは


8年くらい長い間JavaEEに触れてこなかったのですが、
最近触れてみるとかなり技術が変化していて驚きました。

特に昔はJSPでビュー側を書いていたのに、最近ではFaceletsというものが出てきて
いわゆるxhtml形式で書くのが主流になってきているんですね。
自分の備忘のためにも簡単にFaceletsについて書いていきたいと思います。

Faceletsの前に、まず触れておきたいのがJSFについてです。
JSFは「JavaServer Faces」の略であり、JavaEEの仕様の一つに採用されており、コンポーネントベースで動作するフレームワークです。

※コンポーネントベースとは、URLやHTTPリクエスト・レスポンスといったものによらず、
JSFがXHTMLに記述した内容からビューの組み立てや、入力チェックなどの処理を内部で行うものです。
実装ルールが決まっており、ビューの再利用性を高め、コードの記述量を減らすことができます。

当初JSFはビューを記載する方法として、アクションベース(URLによってサーバ側の処理を決定する)で動作するJSPを使っていましたが、
バージョン2.0以降はFaceletsが標準仕様内に組み込まれ、サーブレットと組み合わせずに動作をさせることができるようになりました。

この仕様変更のメリットとしては、以下が挙げられます。

・ロジックとビューの分離が明確になる
・コンポーネントの再利用が容易
→ 開発生産性が上がる!!

これからはJSFを使ったFaceletsですね!

最後に、今Web業界には多くのフレームワークがありますが、
JavaEEはJavaの古いフレームワークで使いづらいという印象を持たれがちですよね。
でもそんなことないんです。
これからJavaEE7を使いながら、JavaEEの魅力を発信できればと思っています。