ひがやすを技術ブログ

電通国際情報サービスのプログラマ

1.0.5リリース

  • バリデーションのメッセージでm:labelが使えるようになりました。
  • テキストに対する処理を見直しパフォーマンスチューニングをしました。
  • 関連チェックをするバリデーションのサンプルをつけました。
  • レイアウト時のf:paramがサブミットのときにも処理されるようにしました。



バリデーションは、かなり強化されています。バリデーションの共通部分をdiconファイルで指定しておいて、s:validatorタグで設定を追加できます。例えば、ある項目は、別の項目以上でなければならないというバリデータがあった場合、関連チェックする相手は、タグごとに異なります。このようなときに、以前のバージョンだとチェックする相手を変えるごとにdiconファイルに別のバリデータとして登録する必要があったのですが、今回から不要になりました。

diconファイル



html


<span m:inject="s:validator"
m:binding="#{greaterEqualValidator}"
m:targetId="from"/>
S2GreaterEqualValidatorは、targetIdで関連チェックする相手を指定するのですが、diconファイルの定義は1つでhtmlでtargetIdを追加するようになっています。この場合、diconファイルのinstance属性はprototypeにします。
m:labelを使ったバリデーションは次のようになります。

<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>
m:labelを使うためには、UIComponentとValidatorがそれぞれ対応している必要があります。標準のUIComponentとValidatorについては、それぞれ対応するUIComponentとValidatorをS2JSFで用意しています。独自のUIComponent、Validatorを作る場合は、S2JSFを参考にして機能を追加してください。
追加:http://d.hatena.ne.jp/higayasuo/20050912#1126513517