1

プロパティとしてブランドとモデルを持つクラス「車」があります。このクラスのアイテムのリストがありますList<Car> myCars。JSP ページで 2 つのドロップダウンを表す必要があります。1 つはブランド用、もう 1 つはモデル用です。ブランドを選択すると、モデル リストにはそのブランドのものだけが表示されます。これを動的な方法で行う方法がわかりません。

どこから始めればよいですか?ありがとう

アップデート

わかりました、今私がしていることは、すべてのブランド名のリストとアイテムのリストをリクエストで送信することです. JSP コードは次のようになります。

<select name="manufacturer" id="id_manufacturer" onchange="return getManufacturer();">
  <option value=""></option>
    <c:forEach items="${manufacturers}" var="man">
       <option value="${man}" >${man}</option>
    </c:forEach>    
</select>

<select name="model" id="id_model">
   <c:forEach items="${mycars}" var="car">
      <c:if test="${car.manufacturer eq man_selected}">
        <option value="${car.id}">${car.model}</option>
      </c:if>
   </c:forEach>    
</select>

<script>
  function getManufacturer()
  {
     man_selected = document.getElementById('id_manufacturer').value;
  }
</script>

選択した「man_selected」に従って「モデル」選択オプションを更新するにはどうすればよいですか?

4

1 に答える 1

2

これを実現するには、基本的に3つの方法があります。

  1. ドロップダウンの変更時にJavaScriptを使用してフォームをサーバー側に送信し、リクエストパラメータに基づいてJSP/サーブレットに子ドロップダウンをロードして表示させます。技術的には最も簡単な方法ですが、最もユーザーフレンドリーでない方法でもあります。フォームの他のすべての入力値も復活させたいと思うでしょう。

  2. JSPがJavaScript配列に値を入力し、JavaScript関数を使用して子ドロップダウンをロードして表示します。JavaScriptをまだ知らない場合は確かに少し注意が必要ですが、これはよりユーザーフレンドリーです。唯一の注意点は、ドロップダウンアイテムが比較的多い場合、これは帯域幅とメモリの効率が悪いことです。

  3. JavaScriptがサーバー側に非同期HTTPリクエストを起動し、それに応じて子ドロップダウンを表示するようにします。オプション1と2の最良の組み合わせ。効率的でユーザーフレンドリー。

ここにコードサンプルを含む拡張回答を投稿しました:JSP/サーブレットに子ドロップダウンリストを設定します。

于 2010-05-27T16:52:48.687 に答える