[HOME]
「JavaServer Faces完全ガイド」フォローアップ
updated 21 Sep. 2006([Ajax for JSFに関するMax Katz氏インタビュー])
なんといっても、いちばんの注目話題はFaceletですね。
28. 2006年TSS最新記事より(060125)
1. JSFとBeehive Page Flowとの統合化
Integrating JavaServer Faces with Beehive Page Flow 060116
原文記事
TSS記事
2. Oracle ADF Facesがオープンソース化されました
Oracle ADF Faces Goes Open Source 060125
TSS紹介記事
Oracle ADFサイト
3. 新年最新の「JSFいじめ」記事
(原文よりも、TSS(The Server Side)における反響記事のほうが、たいへん
おもしろいです。)
Tim Shadel says JSF isn't their choice for the future 060125
blog原文
TSS読者反響記事
27. 最近犯したバグからの教訓(051019)
JSFコンポーネントのvalueに値結合されているビーンのプロパティの値を
ヴァリューチェンジリスナメソッドの中で(セッターメソッドを呼び出すな
どして)更新することは無効です。なぜならヴァリューチェンジリスナメソ
ッドは通常「検査処理段階」で呼ばれますが、ビーンのプロパティの値はそ
のあとの「モデルの値更新段階」でコンポーネントの値にセットされるから
です。したがってヴァリューチェンジリスナメソッドが行う処理としてビー
ンのプロパティの値とコンポーネントの値を正しく更新するためには、コン
ポーネントのsetValue()メソッドを呼び出す必要があります。
なお、この方法を前提として「モデルの値更新段階」が確実に実行されるた
めには、そのヴァリューチェンジリスナメソッドをメソッド結合しているコ
ンポーネントのimmediate属性の値がtrueであってはいけません。
26. JSFのAJAX対応化(050923, 25, 28, 1019, 1118)
Exadel社Max Katz氏「Ajax for JavaServer Facesに関するインタビュー」を抄訳(060921)
前回セーブしたステート情報に基づいてビューの全体を再送信再描画するJSFのよう
なフレームワークと、クライアントサイドでビューを部分的に変えてしまうことも
あるAJAX(Asynchronous JavaScript and XML)との相性の悪さが、懸念され
ています:
AJAXを斬る(051208)
--Webの今後のテクノロジをめぐって、いろいろ高度な研究開発が行われているのに、
いまどきこんな古くさいチャチい技術がもてはやされるのはなんじゃらほい、と論じ
ています。
[関連記事:Ajaxの間違い]
AJAXで従来のWebフレームワークは要らなくなる?(051118)
[TSS記事]
Does JSF + AJAX really make sense?(Alexander Jerusalem)
これに対して、Faceletの作者であるJacob Hookom氏が「JSFのViewHandlerを
AJAX対応にすることは難しくない」と、自らの試作&ベンチマーク体験を述べて
います:
JSF Avatar vs. MS Atlas(Jacob Hookom)
●JSF vs. AJAX関連リンク
AJAX with J2EE(Sunの基本ドキュメント集)
JSFコンポーネントのAJAX対応化
JavaServer Faces and AJAX(リンク集)
AjaxFaces(商用製品の例)
Apache MyFaces(一部のコンポーネントがAJAXを内部的に使用)
Updated AJAX-focused Java BluePrints Solutions Catalog for JSF(060211)
[TSS記事]
●AJAX資料集
Wikipedia解説文
AJAX入門(mozilla.org)(日本語訳あり)
--この入門記事は、シンプルで分かりやすいのでおすすめです。
AJAX入門(IBM)
--この入門記事は、作例が実用アプリ的(ショッピングカート)なので、上の入門
記事の次に読むとよいでしょう。Tomcatなどの上で、即実行できます。
DWR(WebアプリをAJAX対応化するためのJava/JavaScriptライブラリ)
Echo2(AJAXベースのWebアプリ開発フレームワーク-JavaScript, XML知識不要)
書籍:Ajax in Action/(サンプル)
AJAX Renderer for JSF(051019)
Creating and Using a Custom Render Kit: SVGをFORMとしてsubmitする(051009)
AJAX: How to Handle Bookmarks and Back Buttons + [TSS記事](051028)
Developing Ajax Applications That Preserve the Back Button(060128)
[TSS記事]
Ajax in Action, Managing Events and the Model + [TSS記事](051028)--書籍抜粋
----------------
#そのほかの注目リンク
(1)JSFにアノテーションを導入?!
TSS記事
Duncan Mills氏
JSF Spec Lead, Ed Burns氏
(2)マネージドビーンの“多態化”
TSS記事
オリジナル記事 by Daniel Hinojosa氏
(3)David Geary氏のブログより:
StrutsよりもJSFが良い理由トップ10
25. 正誤表(050918, 22, 1013)
(051019)
p647右下14, 648左13 14 25 25 右9, 649左15 16, 651左下14,
653左3 17 18 21 32 34 40, 654左下17 19 右1 2 14 15 16 18,
655右下11, 656左下13
[誤]WEB-INFファイル
[正]web.xmlファイル
p366 : 15-16
[誤]付録Bを見よ
[正]付録Cを見よ
索引追加:
[A]
Action, Strutsの...........255
ActionForm, Strutsの.......255
[I]
immediate属性..............168-169
[R]
Resolver...................299
訳注追加:
p163 : 原著者脚注に対する訳注:
‡訳者注:faces-config.xmlファイル中の<application>成文の<action-listener>サブ成分で指定します。
--end1019----------------------------------------------------
p149下から150にかけての、リスト7-6のタイトルにあるTLDAは、正しくはTLDです。
p366 : 4 (050922)
[誤]hLoutputText
[正]h:outputText
p577 : ValueChangeListenerの項
[誤]インタフェイス名: javax.faces.event.ActionListener
[正]インタフェイス名: javax.faces.event.ValueChangeListener
p653左:13 (<lifecycle>成分の項)
[誤] .................................607
[正] .................................608
p653左:下16 (<managed-bean>成分の項)
[誤] .................................607
[正] .................................609
(051013)
p306:下19行
[誤]14章で作ったレンダラのクラス
[正]13章で作ったレンダラのクラス
p307: 16行 ... このソースは本書の上にはありません。
[誤]あとでそのソースコードを、じっくりご覧ください
[正]あとでそのソースコード(/src/com/mycompany/jsf/taglib/PanelTabbedTag.java)
を、じっくりご覧ください
p630: 下10行 ... インデント(字下げ)の間違い
[誤] </error-page>
[正]</error-page>
---(これは正誤表の一部ではありません)-----------------------------------
p130:12行
【本文】
そうやって、各コンポーネントが自分の値を手元に持ったら、JSFはコンポーネント
のvalidate()メソッドを呼んで値を検査します。
(ここは誤解を招きそうな箇所なので、解説をがんばって書きました。)
【解説】
24. Facelet (050819, 0825, 26, 0901, 13, 23)
いよいよ、JSPとWebコンテナ(サーブレット/JSPエンジン)に依存しない、完全にJSFが
主役の、テンプレートエンジンが登場しました。それが、Faceletです:
●開発者によるデベロッパドキュメンテーション
[日本語訳]
●開発者による入門記事
Inside Facelets Part 1: An Introduction by Jacob Hookom
(抄訳)
連載第二回
(抄訳)
連載第三回
(抄訳)
●関連リンク
[FaceletsはJSFにぴったりのグローブだ]by Rick Hightower(060226)
IBM自身による日本語訳
[反響集(1)]
[反響集(2)]
[筆者のblog]
[高度なFaceletsプログラミング(カスタムロジックタグとELファンクションを作る)]by Rick Hightower(060608)
Facelets 0.8 released, competing with Tapestry in the JSF world
Facelet HP
Wikiページ
[ダウンロード]---050923最新=v.1.0 (?)
(デモプログラムの使い方はwarファイルをTomcatなどのwebappsディレクトリに
放り込むだけです。hangmanはhangman/home.jsfがスタートページです。そのほ
かのファイルをダウンロードする必要はありません。)
[ドキュメンテーション]
●TapestryとJSFの比較論(050826)
JavaServer Faces vs Tapestry - A Head-to-Head Comparison
TSS Forum
●Sergey Smirnof氏のExadel Studio ProがFaceletをサポート(050913)
製品
Faceletサポート解説
----------------------
(そのほかのJSF関連ページ)
Building Custom JSF UI Components by Chris Schalk
(感想/議論)
23. Rails, Trails, MonoRails, and, JSF
Railsというフレームワークが注目を集めています。Rubyがベース言語なので、Ruby on
Rails, 略してRoRとも呼ばれます。
・RoRホームページ
Ruby on Rails
・チュートリアル
Rolling with Ruby on Rails(Curt Hibbs 01/20/2005)
・David Geary氏絶賛:「ゼロ時間開発が可能だ!」
Ruby on Rails Koolaid, Redux(David Geary, 25 Jul. 2005)
・Java勢反論
Zero Turnaround Time: the crucial flaw?(Joseph Ottinger on July 28, 2005, TheServerSide.com)
・Java版Rails ??
Trails
[Trails解説/チュートリアル](23 Jun. 2005)
・RoRがShale/JSFに影響を与える
Ruby and Bruce Tate
----------------------------------------------------------------------------
・3時間あればできるRubyチュートリアル
Rubyは、クラスの構成やメソッドの定義をランタイムに変えられる、メソッドや単
なるコードブロックを別メソッドの引数や返し値にできる、など、Javaと違って“む
き出しの切れ味の良いナイフ”(ある意味、Cのポインタに似ている)のような部分を
持つ、魅惑的誘惑的な言語です。君子危うきに近寄ってみたいかたには、まずこの、
良質なチュートリアルをお勧めします:
プログラミング入門-Rubyを使って
----------------------------------------------------------------------------
22. 最近の注目リンクより
Java Studio Creator試用体験記(Jul. 09, 2005)[JSCによる開発過程のデモ]
A Proposal for Design-Time Metadata for Java Server Faces Components(Jun. 16, 2005)
iJavaServer Faces Presentation by Craig R. McClanahan
JavaServer Faces: Dead on Arrival or Raging Success?
M7 Announces NitroX JSF IDE(May 27, 2005)
Threaded replies(Java Studio Creatorとの比較など)
Craig McClanahan on JSF(May 25, 2005)
WebGalileo Faces 2.0 - JSF components released(May 23, 2005)
21. JSF + Spring Web Flow + Shale
最近、Springフレームワークの関連技術であるSpring Web Flow
が高い関心を集めています。それは、通常、forwardでつながれる
request→action→view .....の流れ、すなわちフロー(flow)を、
再利用できるモジュールとしてカプセル化する技術です。
Strutsの作者であり、JSFの規格策定リーダー(spec lead)でもあるCraig McClanahan
氏はSpring Web Flowのすばらしさにいち早く目をつけ、JSFと、次世代Strutsとも呼ば
れるShaleと、Spring Web Flow三者の統合化を、提唱しました。
この発表に対して、Webデベロッパたちの反応・反響も、熱を帯びています。
Spring Web Flowのドキュメンテーションを中心として、関連のドキュメンテーションを
訳してみたいと思っているのですが、どうでしょう、みなさまのご関心やニーズは?
作者たちが書いた記事:Spring Web Flowの使い方
20. JSF 1.2 & JSP 2.1 公開検討仕様(Public Review Specifications)
JSF 1.2(0508:Proposed Final Draft..最終草案)
JSP 2.1
Ed Burns氏のBlog
The ServerSideにおける読者感想集
JSF 1.2の目玉:
・ELの統一(#{}と${}の両方をJSF/JSP双方で使える)。
・JSPとの相性の悪さを解消。
・JSFの入力コンポーネントをJSTLの<c:forEach>の中で使える。
・ブラウザのBack-button(戻るボタン)でJSFが混乱する問題を解消。
・任意のコンポーネントに任意のメッセージラベルを付けられる。
JSP 2.1の目玉:
・trimWhiteSpacesディレクティブを導入。JSPの中に“複雑高度な”Javaコードを
安心して書きやすくなる??。
19. 訂正
p149下から150にかけての、リスト7-6のタイトルにあるTLDAは、正しくはTLDです。
おまけリンク:
・企業におけるJSfの本格採用例
http://www.theserverside.com/news/thread.tss?thread_id=32318
http://www.jsfcentral.com/trenches/trenches_2.html
18. 眉に唾をつけてJSFを見ている人びとのために
Professional Strutsの著者Rick Hightower氏による連載記事
(JSFによる開発がStrutsに比べて超簡単である、と例示します。)
JSF for nonbelievers: Clearing the FUD about JSF
この記事をめぐる議論
17. selectBooleanCheckboxにテキストラベルを付ける方法
以下は、Hansとの最近のメールです:
> How to set label text for a selectBooleanCheckbox?
>
> Aren't there text or label attribute yet for that component?
You can use the <h:outputLabel> action for any input component,
including <h:selectBooleanCheckbox>:
<h:selectBooleanCheckbox id="myCheckbox" ... />
<h:outputLabel for="myCheckbox" value="Some choice:" />
Or just plain template text:
Some choice:
<h:selectBooleanCheckbox id="myCheckbox" ... />
###
OracleのADFのselectBooleanCheckboxは、属性でラベルテキストを指定できるんですよ。
16. Struts 2.0はJSFがベースになる
コードネームShaleの話がネット上
で増えています。
私は、Strutsを抜きにした、JSFオンリーの開発で十分であり、ずっと楽であり、
簡単である、と信じます。このページの「18.」のリンク先を、
読んでみましょう。
15. Adam Winerが語るJSFの未来
The ServerSideよりの勝手な翻訳です。
オリジナルはここです。
Oracle ADF Faces Early Access(May 2005)
14. JSFとApache Commons Chain
http://www.theserverside.com/news/thread.tss?thread_id=31030
[コードサンプル]
David Geary氏のWeblog記事です。
バッキングビーン(グルービーン, 「JavaServer Faces完全ガイド」p114)を単純化し、
背後のアプリケーションロジックと非結合化できる、と絶賛しています。
13. RenderKit for WML
Apache MyFacesの開発チームより。
http://www.theserverside.com/news/thread.tss?thread_id=30859
12. JSF 1.2 with JSP 2.1 (仕様:初期草案)
http://www.theserverside.com/news/thread.tss?thread_id=30505
最大の目玉は、JSFとJSPのELが統一されたことです。JSPだけのページから、JSFのマ
ネージドビーンのプロパティにアクセスする、などが可能になります。
11. メジャーなWebフレームワークの比較
これは、けっこう現実的で良識的な議論と思われます。
簡潔なPDF文書です:
http://equinox.dev.java.net/framework-comparison/WebFrameworks.pdf
TheServerSide上の読者反応集(Kito Man氏の投稿もあり):
http://www.theserverside.com/news/thread.tss?thread_id=29817
10. JSF vs. Strutsを充実
9. JSF-Spring統合化ライブラリ
JSF-Spring 2.6
・カスタムVariableResolverを提供, JFSから直接、Springのビーンにアクセス可能。
・JSFのマネージドビーンをSpringのコンテキストに統合化、相互乗り入れを可能に。
[関連情報]
例によって、ServerSide上の読者の意見感想がおもしろいです。
SwingなどのGUIアプリケーションを手がけていた人びとは、JSFを「生産性が高い」と実感するようですね。
----------
●JSF + Spring + Hibernateによるサンプルアプリケーション
(この作例は、上記のライブラリを使っていません。)
8.1.1参考実装デバッグバージョン
Maintenance release of JSF 1.1
バージョン番号は1.1.01となっています。
詳しい内容はリリースノートに書かれています。
7.Java Studio Creatorを使ったJSF開発(デモ)
Touring JSF on Java Studio Creator
短くて画面写真(スクリーンショット)のたいへん多い、分かりやすいチュートリアルです。
1.JavaServer Faces 1.2 & 2.0
http://www.theserverside.com/news/thread.tss?thread_id=28419
(いずれも、実装系はまだです -- 040903現在)
[JSR 252]
JSR 252: JavaServer Faces 1.2
2. クライアントサイドヴァリデーションはどうなった?
What happend to JSF client side validation?
Hans,
This is a quote from original JSR-127:
>> The following 8 design goals represent the focus of this proposal:
>>
....
>> 5. Define APIs for input validation, including support for client-side validation.
Spec lead is credited as Amy Fowler!
I'd like to ask: what is the current status for the JSF client-side validation
component or API?
Could we get a ready-made somewhere?
-- Hiroshi Iwatani
---------------------------------
Hiroshi,
> This is a quote from original JSR-127:
>> The following 8 design goals represent the focus of this proposal:
>> 5. Define APIs for input validation, including support for client-side validation.
>
> Spec lead is credited as Amy Fowler!
> I'd like to ask: what is the current status for the JSF client-side validation
> component or API?
> Could we get a ready-made somewhere?
Amy was the original spec lead, turning it over to Craig due to lack
of time. There wasn't enough time to get proper client-side validation
support into JSF 1.0, but it will likely be added in a future release.
For now, you need to use custom components/renderers/validators.
Hans
規格策定の初期の段階(Amy Fowler時代)から導入が決まっていたクライア
ントサイドヴァリデーションに関してHansは、「1.0には間に合わなかった。
今後のリリースに含まれるであろう」と答えています。Geary氏ら著の
Core JavaServer Facesの12章には、2つの実装例が紹介されています。
3.HTMLのリストをレンダーするコンポーネントはないの?
Why not <h:dataList> ?
Hiroshi,
> Is there a renderer in the HTML render kit which can render HTML list with
> <ul>, <ol>, <li> etc. with implicit forEach loop behavior?
Not in the specification, but you can use the Bar renderer, i.e.,
<my:dataBar>, from the book examples to get that behavior. I believe
MyFaces also provide a similar render.
> If the answer is no, then why is it that?
Because there wasn't time to define more standard renderers.
> Is there a redy-made HTML List component somewhere?
See above.
Hans
--
HTMLのリスト(的)なコンポーネントはないのか、という質問に対して
Hansは、「JavaServer Faces完全ガイド」13章の<my:dataBar>が使える、
と答えています。実際にHTMLの<ul>, <ol>などをレンダーするカスタム
コンポーネントは、Hansが紹介しているMyFacesサイトのほかに、次のフ
ォーラム投稿も参考になります:(試行的段階), (ほぼ完成段階)。
4.Resinでuserとpasswordとroleを登録するには?
resin.confの中に、次のように<authenticator>成分を書きます。特定
のWebアプリケーションだけに登録したいときは、これを<web-app-default>
成分ではなく、そのWebアプリケーションを定義している<web-app>成分の中に
書いてください。Resin Webサーバは、v.3.0.8以降がJSFを正しく動かせます。
<web-app-default>
...
<authenticator type="com.caucho.server.security.XmlAuthenticator">
<init>
<user>hans:secret:employee</user>
<user>mike:boss:manager</user>
<password-digest>none</password-digest>
</init>
</authenticator>
...
...
</web-app-default>
[Resin使用注記]--added 050901
Resinはデフォルトでは自分の内部のJavaコンパイラを使いますが、こいつは
エラーメッセージが超不親切です。そこで、resin.confの中のjava compiler
要素の値を、"javac"や"jikes"に設定変えすることが、Resinを使うときの絶対
条件だと私は思います。Tomcatでは、javacの日本語エラーメッセージが文字化け
することがありますが、Resinではそれはありません。
5. JSPを捨ててJSFの明るい未来を
「JavaServer Faces完全ガイド」の中でHansは最初から最後まで、JSPを絶
対視するな、と読者に念を押しています。JSFのメインのプレゼンテーション
技術としてJSPが選ばれたことに対しても、彼は批判的です。6月(2004)に彼
が書いた小論を、読んでみてください:
Improving JSF by Dumping JSP ... この論文に指摘されている問題そのものは、
JSF 1.2で解決される予定です。
読者の感想, Hansからの応答
6. 精選リンク集
Sun
MyFaces
James Holmes氏
JSF Tutorials(Sergey Smirnov氏)
Otrix
Sun JSF Forum
JSF Q&A by JSF EG members
JavaServer Faces - Examples and Tutorials by Sergey Smirnov
------------------------
[JSF vs. Struts]
Marty Hall JSF tutorial
--このスライドを眺めてみましょう。(051026)
StrutsよりもJSFが良い理由トップ10(050925, David Geary氏)
1.コンポーネント
2.レンダーキット(多様なデバイスへの対応が楽)
3.レンダラ(UIのロジックと表現を完全分離)
4.値結合(ビーンアクセスを超単純化)
5.イベント
6.拡張性
7.マネージドビーン(依存性注入)
8.POJOアクションメソッド
9.スタンダード
10.実装の多様
JSF vs. Struts(from forum.java.sun.com)
Struts Or JSF? Struts And JSF? by Craig McClanahan
JavaServer Faces (JSF) vs Struts - A brief comparison by Roland Barcia (IBM)
... Strutsとの対比論の中では、これがいちばん優れていると思います。
このページの「18.」の項のリンク先の記事は、Strutsとの比較がきわめて具体的です。
(上のリンクに記事がなければ[ここ]。)
JavaWorld-WebLogsより:
Here are my findings. I used struts for my previous project. Now I am using JSF.
以前はStrutsを使っていたが、今ではJSFを使っている。その理由は:
1) Declaritive Navigation is simple in JSF compare to struts
JSFの宣言的ナビゲーションはStrutsに比べてシンプルだ。
2) No need to write action classes, so no need to configure them and no need
to extend struts actions. Just write event handler methods and reference or
bind them in JSF tags. This is very simple.
アクションクラスを書く必要がない。だから、それらをコンフィギュレーションする
必要がないし、Strutsのアクションをextendsする必要もない。イベントハンドラの
メソッドを書いて、JSFのタグの中でそれらを参照したりメソッド結合するだけでよ
い。とっても簡単だ。
3)Pre-defined validator tags are good.
定義済みの各種ヴァリデータタグは便利だ。
4)Extending servlet is not an issue. I can use servlet filters or I can use
LTPA security constraint.
セキュリティのためのサーブレットの拡張云々は問題ではない。フィルタを使っても
いいし、またLTPAを使うこともできる。
5) No need to write ActionForms. Just write methods in bean and reference
them in JSF tags
ActionFormを書く必要がない。ビーンの中にメソッドを書いて、JSFのタグの中でそ
れらを参照するだけでよい。
Bootom line, I feel JSF is easy ande simple compare to struts.
結論として、JSFはStrutsに比べてやさしいし、簡単だ。
------------------------
最新(2004/08中旬)のJSF論争
--中身の濃い、詳細な議論ですから、JSFを真剣に検討しているかたの一読をおすすめします--
発端となる発言
Geary氏の反論
読者の感想・意見
------------------------
JavaServer Facesのイベント処理
●Oracle ADF: 2006初頭にオープンソース化
OracleがJSFのカスタムコンポーネントを発表
Oracle ADF Faces Early Access(May 2005)
Oracle ADF好評(Sep. 2005)
[HOME]