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

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 3月 3日 (土) 00:11:20 JST


大谷様

中河です。
回答ありがとうございます。
おっしゃる通り、Validatorの指定で先頭を全て大文字にしていました。
TRequiredValidatorとかを見て、全て大文字と勝手に解釈していました…
仕様をちゃんと確認しないと駄目ですね。
お手数をおかけして申し訳ありませんでした。

以上です。

>大谷です。
>
>定数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 メーリングリストの案内