[Seasar-user:6419] Re: [Teeda] 自作のValidatorが使えない

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 2月 28日 (水) 20:35:08 JST


大谷です。

定数Validatorの指定は正しいでしょうか。
正しい指定の仕方は、
 ・先頭が大文字1文字ならば、小文字にして指定。LengthValidatorならxxx_lengthValidator。
 ・先頭が大文字2文字以上なら、大文字はそのままになります。
  TRequiredValidatorならxxx_TRequiredValidatorです。

この挙動はCoolの場合は厳密で見ているのですが、
現状、Hotの場合はコンポーネント名を指定してコンポーネントを取得する際に、
コンポーネント名の先頭の大文字・小文字が誤っていてもコンポーネントが取得できてしまいます。

よってCoolの挙動が正しいので、定数Validatorの指定は正確にあわせてください。
また、Hotの挙動の不具合は次のSeasar2.4.11で修正されるそうです。

宜しくお願いします。

07/02/28 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 中河と申します。
> バグっぽい動作がありましたので一応報告します。
>
> 概要
> COOLdeploy時に定数アノテーションで指定した自作のValidatorが
> 動作しない。
>
> 説明
> Doltengで作成したSuperAgile(S2Dao)プロジェクトで、
> rootpackage.validator以下に自作のValidatorを作成して、
> 作成したクラスをPageクラスに定数アノテーションで指定して使用
> していたのですが、コンテナの動作をHOTdeployからCOOLdeployに
> 変更したところValidatorが動作しなくなりました。
>
> 修正
> teeda1.0.4のバージョンでクラスConstantValidatorAnnotationHandler
> の78行目付近の
>  String validatorName = fieldString.substring(index + 1);
>> String validatorName =
>     StringUtil.decapitalize(fieldString.substring(index + 1));
> となるように修正しました。
> (実際には継承したクラスをFactoryに登録して対応)
>
> HOTdeployとCOOLdeployで動作が違う原因はいまいち分かっていないのですが、
> 上記変更を行うとHOTdeploy、COOLdeployともに動作するようになりました。
> もしかして何か根本的に勘違いしてます?
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



Seasar-user メーリングリストの案内