[Seasar-user:7737] Re: [Teeda] Validatorでチェックする桁数を可変にしたい

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 5月 22日 (火) 00:17:41 JST


大谷です。

私のblogに書きましたが、DynamicValidatorの機能を追加しました。

http://d.hatena.ne.jp/shot6/20070521#1179744532

対象のコンポーネントのid+Validatorのgetterで
Validatorを動的に置き換えて使うことが出来ます。
混乱を避けるため、動的なValidatorがある場合は、
アノテーションのValidatorは動かないようにしました。

public class HogePage {
 private String name;
 public Validator getNameValidator() {
   //動的にカスタマイズしたValidatorを返す.
 }

よろしくお願いします。

07/05/21 に 松崎 学<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 大谷さん
>
> 松崎です、お世話になります。
> 了解しました。よろしくお願い致します。
>
> On Mon, 21 May 2007 09:46:30 +0900
> "Shinpei Ohtani" <[E-MAIL ADDRESS DELETED]> wrote:
>
> > 大谷です。
> >
> > 下記、もう少し良いやり方も検討してみます。
> > 宜しくお願いします。
> >
> > 07/05/19 に 松崎 学<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > 大谷さん
> > >
> > > 松崎です、お世話になります。
> > > 返信ありがとうございます。試してみます!
> > >
> > > On Fri, 18 May 2007 17:11:00 +0900
> > > "Shinpei Ohtani" <[E-MAIL ADDRESS DELETED]> wrote:
> > >
> > > > 大谷です。
> > > >
> > > > あまりキレイでは無いですが、
> > > > 下記のようにすればできます。
> > > >
> > > > 肝なところは、TeedaExtensionでは
> > > > 定数またはTigerアノテーションで記述したValidatorは
> > > > 内部的にEL式(#{コンポーネント名.プロパティ名})の形で
> > > > saveされています。
> > > >
> > > > そのため、initialize()で直接Validatorを管理しているところに
> > > > addするようにしておいて、その前に動くLogicをかませば
> > > > 動的にValidatorのプロパティを決定することが出来ます。
> > > >
> > > >
> > > > package examples.teeda.web.add;
> > > >
> > > > import javax.faces.internal.ValidatorResource;
> > > >
> > > > import org.seasar.framework.convention.NamingConvention;
> > > > import org.seasar.teeda.extension.validator.TRequiredValidator;
> > > >
> > > > public class AddPage {
> > > >
> > > >       // public static final String arg1_TGreaterThanConstantValidator = null;
> > > >
> > > >       // public static final String arg2_TGreaterThanConstantValidator = null;
> > > >
> > > >       private int arg1;
> > > >
> > > >       private int arg2;
> > > >
> > > >       private int result;
> > > >
> > > >       private NamingConvention namingConvention;
> > > >
> > > >       public String initialize() {
> > > >               String componentName = namingConvention
> > > >                               .fromClassNameToComponentName(this.getClass().getName());
> > > >               ValidatorResource.addValidator("#{" + componentName + ".arg1}",
> > > >                               new TRequiredValidator());
> > > >               ValidatorResource.addValidator("#{" + componentName + ".arg2}",
> > > >                               new TRequiredValidator());
> > > >               return null;
> > > >       }
> > > >
> > > >       public int getArg1() {
> > > >               return arg1;
> > > >       }
> > > >
> > > >       public void setArg1(int arg1) {
> > > >               this.arg1 = arg1;
> > > >       }
> > > >
> > > >       public int getArg2() {
> > > >               return arg2;
> > > >       }
> > > >
> > > >       public void setArg2(int arg2) {
> > > >               this.arg2 = arg2;
> > > >       }
> > > >
> > > >       public int getResult() {
> > > >               return result;
> > > >       }
> > > >
> > > >       public void setResult(int result) {
> > > >               this.result = result;
> > > >       }
> > > >
> > > >       public String doCalculate() {
> > > >               result = arg1 + arg2;
> > > >               return null;
> > > >       }
> > > >
> > > >       public NamingConvention getNamingConvention() {
> > > >               return namingConvention;
> > > >       }
> > > >
> > > >       public void setNamingConvention(NamingConvention namingConvention) {
> > > >               this.namingConvention = namingConvention;
> > > >       }
> > > >
> > > > }
> > > >
> > > > 宜しくお願いします。
> > > >
> > > >
> > > > 07/05/17 に 松崎 学<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > > 松崎です。いつもお世話になっております。
> > > > >
> > > > > TByteLengthValidatorやTNumberLengthValidatorでチェックする桁数を
> > > > > ロジックでセットする事は可能でしょうか?
> > > > > 入力可能桁数をDBのテーブル定義情報から取得してチェックしたいのです。
> > > > >
> > > > > アノテーションでソースにリテラル指定する事しか出来ないのでしょうか?
> > > > >
> > > > > 以上、よろしくお願い致します。
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > Seasar-user mailing list
> > > > > [E-MAIL ADDRESS DELETED]
> > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > >
> > > >
> > > >
> > > > --
> > > > =============================
> > > > Shinpei Ohtani
> > > > [E-MAIL ADDRESS DELETED]
> > > > =============================
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > [E-MAIL ADDRESS DELETED]
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > >
> > >
> > >
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > >
> >
> >
> > --
> > =============================
> > Shinpei Ohtani
> > [E-MAIL ADDRESS DELETED]
> > =============================
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
>
> ========================================
>  株式会社キャム
>  福岡市中央区大名2-4-30 西鉄赤坂ビル10F
>  TEL: 092-716-2131  FAX: 092-726-4402
>  URL: http://www.cam-net.co.jp
>
>  松崎 学 <[E-MAIL ADDRESS DELETED]>
> ========================================
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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



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