ホームページ >Java >&#&チュートリアル >HashMap を反復処理して JSP ドロップダウン リストに値を入力するにはどうすればよいですか?

HashMap を反復処理して JSP ドロップダウン リストに値を入力するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 14:21:10809ブラウズ

How to Iterate Through a HashMap to Populate a JSP Dropdown List?

JSP での HashMap のループ

問題ステートメント

JSP スクリプトレット内で HashMap を効果的に反復してドロップダウン リストに値を設定するにはどうすればよいですか?

ソリューション

HashMap を走査する JSP は、通常の Java コードと同じです。次のアプローチを採用できます。

for (Map.Entry<String, String> entry : countries.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}

反復に JSTL を使用する

ただし、JSP スクリプトレットの使用は推奨されません。代わりに、JSTL の を活用することをお勧めします。タグを使用すると、マップの反復処理が可能になります。各反復では、getKey() メソッドと getValue() メソッドを使用して Map.Entry オブジェクトを返します。

例:

<%@ taglib prefix="c" uri="jakarta.tags.core" %>

<c:forEach items="${map}" var="entry">
    Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>

選択ドロップダウンの実装

ドロップダウン リストにデータを入力する前述のコード:

<%@ taglib prefix="c" uri="jakarta.tags.core" %>

<select name="country">
    <c:forEach items="${countries}" var="country">
        <option value="${country.key}">${country.value}</option>
    </c:forEach>
</select>

Data Placement inスコープ

${countries} 内から国にアクセスできるようにするには、適切なスコープに配置する必要があります。これは、

  • リクエスト スコープ (サーブレット doGet メソッド):

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
      Map<String, String> countries = MainUtils.getCountries();
      request.setAttribute("countries", countries);
      request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
    }
  • によって実現できます。アプリケーション全体のスコープ (ServletContextListener contextInitializedメソッド):

    public void contextInitialized(ServletContextEvent event) {
      Map<String, String> countries = MainUtils.getCountries();
      event.getServletContext().setAttribute("countries", countries);
    }

追加リソース

  • [JSP でのリストとマップの反復処理JSTL](https://www.journaldev.com/2680/jsp-iterate-over-list-map-jstl)
  • [ネストされたマップの反復処理JSTL](https://stackoverflow.com/questions/11210152/how-to-iterate-over-a-nested-map-in-c-forEach)
  • [使用した HashMap 内の ArrayList の反復JSTL](https://stackoverflow.com/questions/13002775/how-to-iterate-an-arraylist-inside-a-hashmap-using-jstl)
  • [サーブレットの初期化とアプリケーション データの共有スタートアップ](https://www.mkyong.com/servlet/startup-servlet-contextlistner/)

以上がHashMap を反復処理して JSP ドロップダウン リストに値を入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。