ホームページ >Java >&#&チュートリアル >JSTL を使用して JSP で HashMap を反復処理し、スクリプトレットを回避する方法

JSTL を使用して JSP で HashMap を反復処理し、スクリプトレットを回避する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 06:04:26957ブラウズ

How to Iterate Through HashMaps in JSP Using JSTL and Avoid Scriptlets?

JSP での HashMap のループ

JSP での HashMap の走査は、プレーン Java コードでの走査と似ています。次のループ構造を利用します:


<pre class="brush:php;toolbar:false">String key = entry.getKey();
String value = entry.getValue();
// ...

}

スクリプトレットの欠点

while スクリプトレット以前は一般的でしたが、現在では不適切な行為とみなされています。代わりに、 を提供する JSTL を使用することをお勧めします。 Map を反復処理するためのタグ。各反復で getKey() メソッドと getValue() メソッドを使用して Map.Entry オブジェクトを返します。

<p><c:forEach items= 「${マップ}」 var="entry"></p>
<pre class="brush:php;toolbar:false">Key = ${entry.key}, value = ${entry.value}<br>


JSP ソリューション

特定の問題を解決するには問題:


<p><select name="country"></p>
<pre class="brush:php;toolbar:false"><c:forEach items=&quot;${countries}&quot; var=&quot;country&quot;>
    <option value=&quot;${country.key}&quot;>${country.value}</option>
</c:forEach>


要求されたスコープで ${countries} にアクセスできるようにするには、サーブレットまたは ServletContextListener を使用します。

使用例の例

サーブレットまたは ServletContextListener の使用例を次に示します。 ServletContextListener:

<pre class="brush:php;toolbar:false">Map<String, String> countries = MainUtils.getCountries();
request.setAttribute(&quot;countries&quot;, countries);
request.getRequestDispatcher(&quot;/WEB-INF/page.jsp&quot;).forward(request, response);</p>
<p>}<br>

< ;p>または:

<pre class="brush:php;toolbar:false">Map<String, String> countries = MainUtils.getCountries();
event.getServletContext().setAttribute(&quot;countries&quot;, countries);</p>
<p>}<br>

さらに読み取り


  • JSTL を使用したリストとマップの要素の反復タグ


  • JSTLを使用したHashMap内のArrayListの反復

  • 特殊な自動起動を使用する起動時に初期化してアプリケーション データを共有するサーブレット

以上がJSTL を使用して JSP で HashMap を反復処理し、スクリプトレットを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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