[Seasar-user:7717] Re: [Teeda] システム全体で特定文字の入力を禁止する方法について

Satoshi Takei [E-MAIL ADDRESS DELETED]
2007年 5月 20日 (日) 11:14:34 JST


武居です。いつも回答ありがとうございます。

何かのクラスを継承する事ばかり考えていて、
AOPを使う方法は思いつきませんでした。
なるほどです。

現在実装中のシステムの場合、文字列には必ずByteLengthチェックを行うため、
このvalidatorにinterceptしてみます。

以上、よろしくお願いします。

Shinpei Ohtani さんは書きました:
> 大谷です。
>
> いくつか方法があると思いますが、
> 簡単なのはAOPを使う方法です。
>
> ValidatorにInterceptorを仕掛けて、Validatorの直前に
> 共通半角カナチェックを行うようにします。
>
> 設定はcustomizer.diconに以下のような感じで
> 設定してみてください。
>
>  <component name="yourCustomizer"
> class="org.seasar.framework.container.customizer.AspectCustomizer">
>   <property name="interceptorName">"app_aop.ValidatorInterceptor"</property>
>   <property name="pointcut">"validate"</property>
>  </component>
>
>  <component name="validatorCustomizer"
> class="org.seasar.framework.container.customizer.CustomizerChain">
>   <initMethod name="addCustomizer">
>     <arg>yourCustomizer</arg>
>   </initMethod>
>  </component>
>
>
> この方法だとValidatorがかかっている項目に限ってしまうと
> 思いますが、実際の業務画面で入力項目には何らかのValidatorが
> かかるだろうという前提です。
>
> よろしくお願いします。
>
> 07/05/19 に Satoshi Takei<[E-MAIL ADDRESS DELETED]> さんは書きました:
>   
>> 武居です。
>>
>> システム全体で共通に半角カナ等の入力を禁止し、
>> 禁止された文字を入力した場合には、入力エラーを表示したいと思います。
>> @RegularExpressionアノテーションで実現できると思いますが、
>> すべての入力フィールドに、このアノテーションを記述するのは大変です。
>>
>> 共通の入力エラーチェックを一箇所にまとめて処理したいのですが、
>> 入力チェック部をオーバーライドできるようなクラスか、または何らかの方法は
>> ありますか?
>> もし、無いのであれば、禁止文字チェック用のvalidatorを自作するのが、
>> 一番簡単でしょうか?
>>
>> 以上、よろしくお願いします。
>>
>> --
>> 武居聡([E-MAIL ADDRESS DELETED])
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>>     
>
>
>   


-- 
武居聡([E-MAIL ADDRESS DELETED])




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