JavaServer Faces
JavaServer Faces (JSF) は、JavaベースのWebアプリケーションフレームワークである。Javaの
概要
[JSFには
- UIコンポーネントの
表現 、状態 の管理 、イベントのハンドル、値 の変換 、ページナビゲーションの定義 、国際 化 とアクセシビリティサポートなどのためのAPIセット - UIコンポーネントのデフォルトのセット
- JSPページ
内 のJavaServer Facesインタフェースを表現 するための二 つのJSPカスタムタグライブラリ - サーバサイドのイベントモデル
状態 の管理 管理 Bean (Managed Bean)- JSP 2.0 と JSF 1.2 のための
式言語 (EL 3.0以降 は独立 した規格 となっている。)
JSF
JSF のバージョン
[- JSF 1.0(2004
年 3月11日 ): (DEPRECATED) JSF仕様 の最初 のリリース - JSF 1.1(2004
年 5月27日 ): (DEPRECATED) バグフィックスリリース。HTML仕様 やHTML出力 部分 に変更 はない。 - JSF 1.2(2006
年 5月11日 ): コアシステムとAPIに多 くの改善 を含 むリリース。Java EEに採用 された最初 のバージョンで、Java EE 5に含 まれる。- コンテンツ
織込 みの問題 についての暫定 的 な解決 策 を提供 する改善 内容 については、[1] に記述 されている。 設定 ファイルに DTD の代 わりに XML Schema を提供 - Faces アプリケーションが、
複数 のフレームや複数 のウインドウを持 つ UI デザインができるような改善 - TCKのサポート
範囲 を多 くするための f: タグライブラリの改善 、 f:viewライフタイムイベント、その他 の小 さな機能 改善 - API オブジェクトのデコレータのサポート
- クライアント
側 での状態 保存 のためのセキュリティの改善 - ボタンの
多重 押 し問題 の解決 実装 を容易 にするため、仕様 書 を標準 を記述 している部分 とそうでない部分 を分離 するよう整理 - Portlet に
関連 するバグ修正 最小限 の仕様 変更 を伴 うバグ修正
- コンテンツ
- JSF 2.0(2009
年 6月28日 ) :使 いやすさの改善 や機能 の追加 、パフォーマンスの向上 が図 られたメジャーリリース。Ajax対応 。Java EE 6に含 まれる。 - JSF 2.1(2010
年 10月22日 ) : 2.0のメンテナンスリリースで、ごく小 さな仕様 変更 が行 われている。 - JSF 2.2(2013
年 5月21日 ) : HTML5の対応 、テンプレートを切 り替 えるリソース・ライブラリ・コントラクト、画面 遷移 を管理 するFacesフロー、サーバー側 でコンポーネントツリーを保持 しないステートレス・モードの追加 、といった変更 が加 えられている。Java EE 7 に含 まれる。[1] - JSF 2.3(2017
年 4月 17日 ) :Java EE 8 に含 まれる。WebSocket機能 、CDI拡充 、BeanValidation相関 チェック対応 、Date and Time API(JSR-310)対応 、Ajax機能 強化 。
Facelets
[Faceletsは、JSFのために
Faceletsのテンプレートはjsfc
<!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">
<body>
<h:form>
<h:outputText value="Welcome, #{loggedInUser.name}" disabled="#{empty loggedInUser}" />
<h:inputText value="#{bean.property}" />
<h:commandButton value="OK" action="#{bean.doSomething}" />
</h:form>
</body>
</html>
jsfc
<!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">
<body>
<form jsfc="h:form">
<span jsfc="h:outputText" value="Welcome, #{loggedInUser.name}" disabled="#{empty loggedInUser}" />
<input type="text" jsfc="h:inputText" value="#{bean.property}" />
<input type="submit" jsfc="h:commandButton" value="OK" action="#{bean.doSomething}" />
</form>
</body>
</html>
jsfc
他 の Web GUI フレームワークとの比較
[Struts
[StrutsはApacheソフトウェア
ページは
WebObjects / Wotonomy
[WebObjectsは、よく
JSF(のhtml/xml/wml
テンプレートファイル、フィールドやアクションをJavaコードにマップするファイル、.java
のクラスファイルのいずれかあるいはすべてを.woc
ディレクトリに
WebObjectsは、
Wotonomyは、WebObjectsフレームワークのオープンソースの
Apache Tapestry
[Tapestryは
Microsoft ASP.NET
[JSFは、Webアプリケーションの
コンポーネントから
JSFとAjax
[JSFはリッチインターネットアプリケーション
JSFは
Ajaxを用 いるJSFコンポーネントとフレームワーク
[- ADF Faces ADF Faces Rich Client, (ADF Faces site)
- Backbase Enterprise Ajax ? JSF Edition, Ajax framework
- OmniFaces オープンソースのJava JSF
拡張 フレームワーク - PrimeFaces オープンソースのJava JSF
拡張 フレームワークおよびリッチコンポーネント - ICEfaces オープンソースのJava JSF
拡張 フレームワークおよびリッチコンポーネント、JavaScriptを用 いないAjax - jBoss Ajaxを
用 いたJSFコンポーネントであるRichFacesおよびAjax4JSF - MyFaces Ajaxコンポーネントを
用 いたJSF実装 - Sun Java BluePrints AJAX Components(ウェブサイト)
- MB Technologies BindowsFaces (BindowsFacesのウェブサイト)
- ZK JSFコンポーネントを
用 いたAjaxフレームワーク (ZK JSF のサイト) - J4Fry Ajax JSF Solution (J4Fryのオープンソースコミュニティサイト)
脚注
[- ^ “Java EE 7でさらに
使 いやすく、便利 になったJSF 2.2、CDI 1.1、EL 3.0の主 な強化 ポイント”. ZDNet (2013年 9月 30日 ). 2014年 2月 20日 閲覧 。 - ^ https://web.archive.org/web/20130113100928/http://www.jsfcentral.com/articles/facelets_1.html
- ^ a b “FaceletsはぴったりとJSFにフィットします”. IBM (2006
年 2月 21日 ). 2014年 3月 13日 閲覧 。
参考 文献
[- JSR 372 (JSF 2.3)
- JSR 344 (JSF 2.2)
- JSR 314 (JSF 2.0 and JSF 2.1)
- JSR 252 (JSF 1.2)
- JSR 127 (JSF 1.0 and 1.1)