[Seasar-user:7584] Re: [Teeda] Ajaxで連動させる2つのプルダウンリスト

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 5月 11日 (金) 10:31:19 JST


大谷です。

下記修正しておきました。
Itemsが空でも、Selectだけは出るようにしました。
フィードバックありがとうございます。

07/05/10 に 出羽 健一<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 米林さん
>
> 出羽です、お世話になっております。
>
> > を設定する方法ではいかがでしょうか?
> > この設定で、NullLabelは常に表示されるようになります。
>
> 有難うございます。
> この方法で上手くいきました。
>
> しかも、この方法はここのちょっと下のあたりに書いてありましたね。
> 失礼しました。
> http://www.seasar.org/wiki/index.php?Teeda%2FgettingStarted#q14b61ec
>
>
> > -----Original Message-----
> > From: [E-MAIL ADDRESS DELETED]
> > [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of
> > [E-MAIL ADDRESS DELETED]
> > Sent: Thursday, May 10, 2007 9:01 AM
> > To: [E-MAIL ADDRESS DELETED]
> > Subject: [Seasar-user:7566] Re:[Teeda] Ajaxで連動させる2つのプルダウンリスト
> >
> > 米林です。
> >
> > From: "出羽 健一" <[E-MAIL ADDRESS DELETED]>
> > Sent: Wednesday, May 09, 2007 5:33 PM
> >
> > 常にNullLabelを表示するように、teedaCustomize.diconに
> >
> >  <component
> > class="org.seasar.teeda.extension.util.NullLabelStrategyImpl">
> >   <property
> > name="forceNullLabel">@org.seasar.teeda.extension.util.NullLab
> > [E-MAIL ADDRESS DELETED]
> > ULL_LABEL</property>
> >  </component>
> >
> > を設定する方法ではいかがでしょうか?
> > この設定で、NullLabelは常に表示されるようになります。
> >
> > 今回の場合、Ajaxとはあまり関係が無く
> > Teedaのプルダウンの仕様で@Requiredが指定されて
> > プルダウンを形成するItemsの中身が空の場合に
> > selectタグ自体がレンダリングされないことが原因ですね。
> >
> > だからといって、Itemsが無くてもselectタグだけ
> > レンダリングすると@RequiredでのNullLabel表示を
> > レンダリングしない仕様と整合性が取れなくなります。
> >
> > コミッタ間で相談してみます。
> >
> > > 出羽です。
> > >
> > > > TeedaAjaxを使っていますか?
> > >
> > > TeedaAjax とは直接関係ないかも知れませんが、TeedaAjaxを
> > > 使う時にハマってしまいそうです。
> > >
> > >
> > > > すいません、ちょっと分かりません...
> > > > もう少し詳細に教えて頂けますか?
> > >
> > > こちらこそ、分かりにくくてすみません。
> > > 補足させて頂きます。
> > >
> > >
> > > まず、HTML及びPageは下記のようになっています。
> > >
> > > HTML側
> > > <select id="categoryId"
> > onchange="searchProductByCategory(this.value)">
> > > <option value="1">カテゴリ1</option>
> > > <option value="2">カテゴリ2</option>
> > > </select>
> > >
> > > <select id="productId">
> > > <option value="1">商品1</option>
> > > <option value="2">商品2</option>
> > > </select>
> > >
> > > Page側
> > >     private categoryId;
> > >
> > >     private List<Map<String, String>> categoryIdItems;
> > >
> > >     @Required
> > >     private productId;
> > >
> > >     private List<Map<String, String>> productIdItems;
> > >
> > >
> > > productIdのセレクトボックスは、categoryIdのセレクトボックスの
> > > 値がチェンジした時のタイミングで値がセットされるので、
> > > 最初は何も値が入っていません。
> > >
> > > この状態で、Page側のproductIdに@Requiredを付けると、
> > > NullLabelがなくなるというTeedaの仕様のためか
> > > productIdのセレクトボックスに値が0件の場合は、
> > > 丸ごと消えてしまいます。
> > >
> > > このため、categoryIdのセレクトボックスの値をチェンジしても、
> > > 値をセットする先がないという問題が出てしまいます。
> > >
> > > プルダウンに@Requiredを付けた場合でも、NullLabelが表示されていて、
> > > 画面遷移した時にバリデーションがかかるようなパターンも
> > > 選択できるようになっていると解決しそうです。
> > >
> > > (ひとまず、空文字をNGにするプルダウンリスト用の
> > > 独自バリデータを作ればなんとかなりそうですが、
> > > 独自色の強いコードになってしまうので、できれば避けたいと思っています。)
> > >
> > > 以上、よろしくお願いします。
> >
> > ---
> > 米林 正明
> > [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 メーリングリストの案内