submitは廃止して、全てAjaxにすべき。
サーバとの通信は常にAjax。
プルダウンの中身を取ってくるとかだけじゃなく、登録ボタン押したときとかもAjaxにすべき。
なんでかって?
画面を復元する手間が省けるからです。
submitして登録処理の最中に入力チェック等に引っかかりエラーが発生したときとか、大抵登録ボタン押した時の画面状態を復元するのが普通だと思う。
例えばその画面に、Ajaxで動的にリスト取ってくるプルダウンがあったとする。
その場合、
(A)
画面を表示すると同時にAjaxでサーバからリスト取ってくる。
登録ボタン押したときの選択状態を復元するために、登録ボタン押下時にhiddenか何かに選択値を保持して、画面表示時のAjaxの完了時にhiddenから値を設定。
(B)
プルダウンのリストをsubmit時にhiddenに仕込んで、JSPでそこからリストの内容を構築。
とか、色々な手法が考えられる。
でもこれってsubmitをやめれば、そもそも復元する必要すらなくなるんじゃない?
同じ画面をそのまま表示していたいのに、わざわざ1回クリアして、あまつさえ復元用のソースを書く必要がどこにあるんだ?って感じる。
通信量だって増える。だって同じ画面のソース2回送ってるんだぜ?
表示を変えなくてはいけない場合に変える。変えなくていい場合は変えない。
こんな自然なことができる土壌が整っているのに、それをやっていないソースが今でも多いのは何故だ!?
画面を復元する為にクレイジーな工夫をしているソースを見て何度イラッ
としたことか。ソース読んでてMに目覚めるかと思ったわ。

昔作ったシステムであれば仕方ないが、今から新規開発するシステムでそんな努力をする必要を感じない。
あと、JSPって今では無用の長物に感じる。
まあ、無用の長物ってのは言い過ぎかも知れんけど、実際、大量データをいっぺんに画面に表示する場合くらいしか使う理由が見つからない。
だって、JSPって画面を動的に組立てることをメインにして生まれた技術だと思う(違うのかもしれないが、少なくとも世間ではそう使われてたはず)けど、今ではJavaScriptの速度・信頼性も上がって、Ajaxも普及し、さらにはpjaxも出てきてるじゃん?(pjax使ったこと無いけど)
Ajaxを使うメリットは色々あるけど、その一つとしては
「画面全体をリフレッシュ(submit)することなく、差分だけサーバに問い合わせて、クライアントで画面を更新する」
というのがある。
しかし、JSPはサーバ側で画面を動的に組立てる技術。
この2つの技術の親和性が残念なことに非常に低い。
ゆえに、Ajaxと組み合わせてしまうと何かとトリッキーなソースになりがちだ。
現状ではJSPは捨てて(いっそのことhtmlにしてしまって)、画面の動的構築や通信はAjaxに絞るべきというのが俺の持論だ。
まあ、未だに誰にも受け入れられたことはない持論だがな!