1.0.5リリース
- バリデーションのメッセージでm:labelが使えるようになりました。
- テキストに対する処理を見直しパフォーマンスチューニングをしました。
- 関連チェックをするバリデーションのサンプルをつけました。
- レイアウト時のf:paramがサブミットのときにも処理されるようにしました。
バリデーションは、かなり強化されています。バリデーションの共通部分をdiconファイルで指定しておいて、s:validatorタグで設定を追加できます。例えば、ある項目は、別の項目以上でなければならないというバリデータがあった場合、関連チェックする相手は、タグごとに異なります。このようなときに、以前のバージョンだとチェックする相手を変えるごとにdiconファイルに別のバリデータとして登録する必要があったのですが、今回から不要になりました。
diconファイル
html
S2GreaterEqualValidatorは、targetIdで関連チェックする相手を指定するのですが、diconファイルの定義は1つでhtmlでtargetIdを追加するようになっています。この場合、diconファイルのinstance属性はprototypeにします。
<span m:inject="s:validator"
m:binding="#{greaterEqualValidator}"
m:targetId="from"/>
m:labelを使ったバリデーションは次のようになります。
m:labelを使うためには、UIComponentとValidatorがそれぞれ対応している必要があります。標準のUIComponentとValidatorについては、それぞれ対応するUIComponentとValidatorをS2JSFで用意しています。独自のUIComponent、Validatorを作る場合は、S2JSFを参考にして機能を追加してください。
<input id="userName" type="text"
m:label = "User Name"
m:value="#{validatorDto.userName}" m:required="true">
<span m:inject="s:validator"
m:binding="#{userNameLengthValidator}"/>
</input>
追加:http://d.hatena.ne.jp/higayasuo/20050912#1126513517