[Seasar-user:10572] Re: [Teeda] ValidatorChainの利用時のsetTargetの動作について
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
2007年 9月 17日 (月) 16:25:30 JST
大谷です.
doAddのボタンがPageクラスにないんじゃないでしょうか?
よろしくお願いします.
07/09/17 に 山下 真里<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 小林様
>
> ご回答ありがとうございます。
> 山下真里です。
>
> 私のメールの内容が悪く、ご迷惑をおかけしております。
>
> Teeda HTML Example の validator/dynamicValidator.htmlを
> 下記のようにした記述しました。
> targetに指定されたボタンのみ(doEntryとdoExec)に対してのみ
> バリデーションを有効にしたいと考えているのですが、
> doAddに対してもバリデーションが有効になってしまいます。
> やりたいこととしましては、setTargetを利用して、
> 押されたボタンによってValidatorの有無を切り替えたいと考えております。
>
> 私の環境では、テキストボックス(id="aaa")に 値(11)を入力し、
> id="doAdd" のサブミットボタンを押すと、「値(id=aaa)が短すぎます。
> 5桁以上で入力してください。」と表示されます。
> そこで、setTargetの値がValidatorChainを利用した場合、
> 適用されるのか、分らなく投稿させていただきました。
>
> ご迷惑をおかけしますが、よろしくお願いいたします。
>
> また、メールの件、大変ご迷惑をおかけしておりました。
> Web メールを利用して投稿等をさせていただいておりましたが、
> クライアントメーラーを利用し、今後、投稿をさせていただこうと
> 思っております。今まで、大変ご迷惑をおかけしました。
>
> 山下真里
>
>
> === dynamicValidator.html =============================================
>
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> <title>Dynamic Validator</title>
> <style>
> .onTeedaError {
> background-color: #FFCCCC;
> }
> </style>
> </head>
> <body>
> <form id="validatorForm">
> <div>
> <span id="allMessages"></span>
> </div>
> <input type="text" id="aaa"/><br/><br/>
> <input type="text" id="bbb"/><br/><br/>
> <input type="submit" id="doAdd" value="add"/>
> <input type="submit" id="doExec" value="execute"/>
> <input type="submit" id="doEntry" value="entry" />
> </form>
> </body>
> </html>
>
> === DynamicValidatorPage.java =========================================
> package examples.teeda.web.validator;
>
> import javax.faces.internal.ValidatorChain;
> import javax.faces.validator.Validator;
>
> import org.seasar.teeda.extension.validator.TLengthValidator;
> import org.seasar.teeda.extension.validator.TRequiredValidator;
>
> public class DynamicValidatorPage {
>
> // これらは動的なValidatorが定義されている場合、無視される
> public static final String aaa_TRequiredValidator = null;
>
> public static final String aaa_TLengthValidator = "minimum = 1";
>
> public static final String bbb_TRequiredValidator = null;
>
> public static final String bbb_TLengthValidator = "minimum = 1";
>
> private Integer aaa;
>
> private Integer bbb;
>
> public Validator getAaaValidator() {
> return createValidator();
> }
>
> public Validator getBbbValidator() {
> return createValidator();
> }
>
> protected Validator createValidator() {
> ValidatorChain chain = new ValidatorChain();
> TRequiredValidator tval = new TRequiredValidator();
> tval.setTarget("doEntry,doExec");
> chain.add(tval);
> TLengthValidator lengthValidator = new TLengthValidator();
> lengthValidator.setMinimum(5);
> lengthValidator.setTarget("doEntry,doExec");
> chain.add(lengthValidator);
> return chain;
> }
>
> public void doExec() {
> }
>
> public Integer getAaa() {
> return aaa;
> }
>
> public Integer getBbb() {
> return bbb;
> }
>
> public void setAaa(Integer aaa) {
> this.aaa = aaa;
> }
>
> public void setBbb(Integer bbb) {
> this.bbb = bbb;
> }
>
> }
>
>
>
>
> > 2 つめのボタンを追加して,DynamicValidatorPage で
> > target を設定して試してみましたが,ちゃんと
> > 効いているように見えます.
> > # 1.0.10 および最新のトランクとも問題なし.
> >
> > target が有効にならないというのは,具体的に
> > どういう状況でしょうか?
> > target に指定されている doConfirme または
> > doConfirm2 にバリデータが適用されないのでしょうか?
> > それとも,doConfirme でも doConfirm2 でもない
> > ボタンを押しても適用されてしまうのでしょうか?
> >
> > 可能なら Teeda HTML Example の dynamicValidator を
> > ベースに再現するケースを作成して頂けると助かります.
> >
> >
> > P.S.
> > 以下を見てもらえると分かると思うのですが,
> >
> > http://ml.seasar.org/archives/seasar-user/2007-September/thread.html
> >
> > 山下さんの返信が常に新規スレッドになってしまっています.
> > References: ヘッダが付いていないからなのですが,
> > やり取りを追いかけるのがとても苦痛になってしまうので,
> > できればちゃんと返信になるように (References: が
> > 付くように) して頂けないでしょうか.
> >
> >
> > --
> > <signature>
> > <name>Koichi Kobayashi</name>
> > <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> > </signature>
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
> --
> 山下 真里 <[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 メーリングリストの案内