JSP スクリプトレット内で HashMap を効果的に反復してドロップダウン リストに値を設定するにはどうすればよいですか?
HashMap を走査する JSP は、通常の Java コードと同じです。次のアプローチを採用できます。
for (Map.Entry<String, String> entry : countries.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); }
ただし、JSP スクリプトレットの使用は推奨されません。代わりに、JSTL の
例:
<%@ 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>
${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); }
以上がHashMap を反復処理して JSP ドロップダウン リストに値を入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。