最近仕事でSeasar 2.3系 + S2JSF 1.0系 + S2Dao 1.0.3x系に触ってます。

とりあえずS2JSFを使っていて思うのは、HTML,Action,DTO,faces-config.xmlEclipse上でいったりきたりするのが面倒だということ。
まあこれはベースがJSFである以上しかたないと思うけど。StrutsでもJSP,Action,ActionForm,struts-config.xmlをいったりきたりするのが面倒だったし。

Teedaだったらfaces-config.xmlをいじる必要は無いし、HTMLとPageのいったりきたりもDoltengのCtrl+5でできるからいいんだろうけどね。
ただTeedaに比べてS2JSFの方がまだシンプル(素のJSFに近いとも言えるかな?)だとは思う。

この辺りの面倒くささをフレームワークとツールでうまくサポートでき、かつシンプルで学習コストが低いとかなりいい感じなんだろうね。

まあせっかくなのでS2JSF,Teeda,JSFも少し調べてみよう。以下とりあえずのメモ。

S2JSFのinitializeはTeedaのprerender相当。

S2JSF1.1ではItemSaveという機能があり、ForEachで使用していたListのinstance属性をsessionにしなくてもよい。

JSFでバリデータを作る場合は、javax.faces.validator.Validatorとjavax.faces.component.StateHolderをimplementsして
エラーだったらjavax.faces.validator.ValidatorExceptionをthrowする。

ValidatorExceptionがthrowされるとrenderResponseフラグがたって、Renderer Responseフェーズにすすむ。

よくわかるJavaServer Facesのしくみ

よくわかるJavaServer Facesのしくみ

を見る限り、以下のクラスが重要っぽいな。
ViewHandler,StateManager,ExternalContext,NavigationHandler,FacesContext,Lifecycle,UIViewRoot

参考:JSFのライフサイクル
[ThinkIT] 第3回:JSFのライフサイクルとStrutsとの比較 (1/2)