spring での開発で、画面再表示時のリストボックスの初期選択がされなくて困っています。
色々試してみましたが、答えが見つけられませんでした。
お力添えお願い致します。
リストが2つあり、親リストの選択値によってもう片方の子リストの表示内容を切り替えたいため
子リストのほうへカスタムデータ属性を持たせたいです。
(切替処理自体はjqueryで行っています)
この際、form:options を利用するとdata属性を持たせるができないため
optionは<c:forEach>を使い、普通のoptionタグにて実装しました。
そうすると、初期表示やリスト切替はうまくいったのですが
何かの処理イベントでController側でバリデーションとなって再度viewを表示すると
子リストのみ選択値が処理前と同じではなくなってしまいます。(1行目になってしまう)
formの中身が渡っていないのかと思い、直接画面上に表示してみましたが
そちらの値は入っているようです。
form:optionのタグを使うと処理前と同じ値が選択されています。
↓ 上手く行かないソース
jsp
1<!-- 親リスト --> 2<f:select path="area" class="l_base" cssErrorClass="error_input"> 3 <option value="" class="msg">--- 都道府県を選択 ---</option> 4 <f:options 5 items="${xxxForm.areaList}" 6 itemLabel="name" itemValue="code" /> 7</f:select> 8 9<!-- 子リスト --> 10<f:select path="place" class="l_interlock" cssErrorClass="error_input"> 11 <option value="" class="msg">--- 市を選択 ---</option> 12 <c:forEach var="entity" items="${xxxForm.placeList}"> 13 <option value="${entity.code}" data-val="${entity.areaKbn}"><c:out value="${entity.name}" /></option> 14 </c:forEach> 15</f:select>
↓ 上手くいくソース
jsp
1<f:select path="place" class="l_interlock" cssErrorClass="error_input"> 2 <option value="" class="msg">--- 市を選択 ---</option> 3 <f:options 4 items="${xxxForm.placeList}" 5 itemLabel="name" itemValue="code" /> 6</f:select>
表示されたhtmlを見るとどちらも同じなのですが
初期設定値ということはjspの段階で何かしているのだと思ったのですがわかりませんでした。
formの"place"に入っている値を再表示時に選択させるにはどうしたらよいのでしょうか?
ご教授、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー