Teeda 1.0.8リリース
遅くなっちゃいましたが、Teeda 1.0.8をリリースします。
Teeda 1.0.7からの変更点は以下のとおりです。
□Bug
- [TEEDA-241] - [Seasar-user:5910] Validationエラー後の条件分岐(Condition)
- [TEEDA-299] - Grid内で使用したチェックボックスがOFFにならない
- [TEEDA-306] - サブミット連打対策が不十分だったのを修正
- [TEEDA-319] - InputCommaTextでfractionが反映されない
- [TEEDA-324] - ForEachでaaaItemsのaaaプロパティが存在する場合にaaaItemsが更新されない
- [TEEDA-328] - ポートレット環境でaタグ内のspanタグでLabelが使えない
- [TEEDA-331] - ポートレット環境で、prerender でページを移動できない場合がある
□Improvement
□New Feature
- [TEEDA-327] - OutputTextにてspanタグをレンダリングしないオプション機能を作成する
- [TEEDA-333] - パスワードチェック等で使うようなEqualsValidatorを作成する
- KumuによるJavaScriptでのレイアウト機能追加
□Task
ダウンロードはこちらからどうぞ.
Maven2からのご利用はこちらを参照ください.
あとはJIRAに載ってはいないけど、他にも改善項目や
バグ修正をたくさんしています.なにかJIRAの項目すくねえw
特にAjaxまわりは格段に使いやすくなったはずです.
ぜひバージョンアップして頂き、使ってみてくださいm(_ _)m
よろしくお願いします.
P.S.1.0.8は結構な難産でしたが無事一区切りできて、ほっとしています.
まだまだ修正した方が良い点あると思うので、1.0.9までに
なるべく多くの修正をする予定でいます.
1.0.9のリリース予定は9月初旬を予定しています.
また、リリース関係で少し間に合っていない残作業は明日やります.
Teedaのデフォルトスコープについて
Teedaはデフォルトで同じサブアプリケーション内で同一プロパティ名ならば、
値を引き継ぐ機能があります.
これは非常に便利な機能で、サブアプリケーションスコープの機能の一つですが、
私の説明が悪かったのか@SubapplicationScopeと同じものだという誤解を招いていたようです.
Teedaのデフォルトのスコープでは、確かに同一プロパティであれば引き継ぐ機能が
ありますが、それは通常のWebアプリ同様input属性のもののみです.
例えば下記のようにspanのコンポーネントが値を持っていたとしましょう.
<span id="hoge">dummy</span>
このコンポーネントはinputコンポーネントではないため、デフォルトのスコープでは値は引き継がれません.
(JSF言葉で言えば、リクエストにのってこないのでUIコンポーネントにdecodeされない.)
引き継ぐにはどうすれば良いのでしょうか.お察しのとおり、hiddenで値を持たせて引き継ぐようにしてください.
<span id="hoge">dummy</span> <input type="hidden" id="hoge-hidden" />
これでデフォルトスコープでも引き継がれるようになります.
では、明示的に@SubapplicationScopeとつけた場合は何が違うのでしょうか.
public class HogePage { @SubapplicationScope private String hoge; }
<span id="hoge">dummy</span>
この場合はspanでも値は引き継がれるようになります.
@SubapplicationScopeをつけた場合、そのプロパティは次のページへリダイレクトして
Pageの状態をセットアップしている最中に復元されるようになります.
同一サブアプリケーション内から出ると、SubapplicationScopeの管理領域から削除されます.
どうしてこのようにしているのかと言うと、@SubapplicationScopeは通常のWebアプリからすると
若干違うキモい動き(spanなどのinputではないコンポーネントでも値が引き継がれる)になるため、
ユーザの方で明示的な指定が必要としているからです.