###前提
SpringMVC+thymeleafにて、検索画面を作っています。
検索条件のフォームと、検索結果のリストの画面構成です。
検索条件の一部に、マスタから取得したドロップダウンボックスがあります。
検索テンプレート内のドロップダウンボックス、検索結果リストはth:eachで展開をさせるためのセレクターを用意しています。
初期遷移時、ドロップダウンボックスにマスタを詰めてあげる必要があるので、DBアクセスしてマスタを取得し、返却するModelにマスタをAddAttributeしてテンプレート名を返却します。検索結果リストは空なので、検索結果のヘッダ項目リストだけ出る動きです。
検索実行して、リストをModelに追加してテンプレート名を返却すると、検索結果リストは展開されますが、ドロップダウンリストが空の状態になってしまいました。
こういう場合、テンプレート名を返却する度に必要なマスタをいちいち取得して詰めてあげないといけないのでしょうか?その際、ドロップダウンボックスの選択位置も設定しないといけないので、非常に面倒です。
そう思って以下の施策をやりました。
①検索結果リストを別テンプレート(fragment)にし、検索結果を返す際に、リストのfragment名を返すようにした→リストのみの画面になってしまったのでNG
②検索結果を返す際は、テンプレート名でなく、検索リストを返すようにして、JSで検索リストのみを構築する→検索フォームも初期化されず、マスタを取ってくる必要もありません。
現状は②のやり方をしてますが、その後別の方が画面共通のページャのテンプレート(fragment)を作って頂き、それはありがたいのですが、②のやり方ではそのページャを画面に組み込む事が出来ません。
結局冒頭に記述したように、テンプレートを返却する際に必要なものを全てModelに詰めてあげるやり方しか無いのでしょうか?よっぽどシンプルな画面でない限りこの問題が付きまとうと思うのですが、みなさんどうしているのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/09 13:46
2017/05/18 03:06
2017/05/18 04:25