[Seasar-user:7572] Re: [Teeda] Ajaxで連動させる2つのプルダウンリスト
出羽 健一
[E-MAIL ADDRESS DELETED]
2007年 5月 10日 (木) 13:59:03 JST
米林さん
出羽です、お世話になっております。
> を設定する方法ではいかがでしょうか?
> この設定で、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 メーリングリストの案内