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

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

Linda Hamilton
リリース: 2024-12-17 06:04:26
オリジナル
874 人が閲覧しました

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

JSP での HashMap のループ

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


<div class="code" style="position:relative; padding:0px; margin:0px;"><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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Key = ${entry.key}, value = ${entry.value}<br>
ログイン後にコピー


JSP ソリューション

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


<p><select name="country"></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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 を使用して JSP で HashMap を反復処理し、スクリプトレットを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
前の記事:Java の配列は値渡しですか、それとも参照渡しですか? 次の記事:JFreeChart が表示された後にその外観を動的に更新するにはどうすればよいですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート