[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 メーリングリストの案内