カテゴリ: JSP 更新日: 2026/02/25

JSPのEL式で配列やリストを扱う方法を完全ガイド!インデックスアクセスの書き方も解説

EL式で配列やリストを扱う方法!インデックスアクセスの書き方とは?
EL式で配列やリストを扱う方法!インデックスアクセスの書き方とは?

先生と生徒の会話形式で理解しよう

生徒

「JSPで配列やリストの中身を取り出すにはどうすればいいですか?」

先生

「JSPではEL式という記法を使えば、配列やリストの要素にインデックスを指定して簡単にアクセスできますよ。」

生徒

「具体的にどうやって書けばいいんですか?Javaのリストとか配列は普段使ってるんですけど…」

先生

「それでは、JSPでのEL式を使った配列やリストの扱い方を一つずつ見ていきましょう!」

1. JSPでEL式を使うと何が便利なのか

1. JSPでEL式を使うと何が便利なのか
1. JSPでEL式を使うと何が便利なのか

JSP(JavaServer Pages)では、Javaのコードをできるだけ避けてHTMLとの分離を保つために、EL式(Expression Language)が用いられます。EL式を使うことで、Javaの配列やListMapなどのコレクションを簡潔に参照できます。

特に初心者がつまずきやすいのが、リストや配列から値を取り出す方法です。Javaではgetメソッドやインデックスを使いますが、JSPのEL式ではもっと簡単に書けるのが特徴です。

2. Javaで配列やリストを用意する

2. Javaで配列やリストを用意する
2. Javaで配列やリストを用意する

まずは、Servlet側でリストや配列を用意して、スコープに保存する方法を確認しておきましょう。


List<String> fruits = new ArrayList<>();
fruits.add("りんご");
fruits.add("みかん");
fruits.add("バナナ");

request.setAttribute("fruits", fruits);

このようにServletでListを生成して、requestスコープに保存しておけば、JSPでEL式を使ってアクセスできます。

3. EL式で配列やリストの要素にアクセスする書き方

3. EL式で配列やリストの要素にアクセスする書き方
3. EL式で配列やリストの要素にアクセスする書き方

EL式では、配列やリストの要素にインデックスを使ってアクセスすることができます。Javaでのlist.get(0)のような書き方に対応するのが、EL式では${fruits[0]}です。


<p>最初の果物:${fruits[0]}</p>
<p>2番目の果物:${fruits[1]}</p>
<p>3番目の果物:${fruits[2]}</p>

このように、配列と同じようなインデックス指定ができるため、JSPでのデータ表示がとても直感的に行えます。

4. 配列を使った場合のEL式によるアクセス

4. 配列を使った場合のEL式によるアクセス
4. 配列を使った場合のEL式によるアクセス

Javaの配列も同様にEL式で扱うことができます。以下はString配列をrequestスコープにセットした例です。


String[] colors = {"赤", "青", "緑"};
request.setAttribute("colors", colors);

JSPでの表示は以下のようになります。


<p>色1:${colors[0]}</p>
<p>色2:${colors[1]}</p>
<p>色3:${colors[2]}</p>

リストでも配列でも同じ記法でアクセスできる点が、EL式のわかりやすい特徴の一つです。

5. JSTLと組み合わせてリストや配列をループ表示する方法

5. JSTLと組み合わせてリストや配列をループ表示する方法
5. JSTLと組み合わせてリストや配列をループ表示する方法

リストや配列のすべての要素を繰り返し表示したい場合には、JSTL(JSP Standard Tag Library)の<c:forEach>タグと組み合わせて使います。


<c:forEach var="item" items="${fruits}" varStatus="status">
    <p>${status.index + 1}番目:${item}</p>
</c:forEach>

これにより、ループ処理をわざわざJavaで書かなくても、JSP内でスッキリと表現できます。

6. インデックス指定で注意すべき点

6. インデックス指定で注意すべき点
6. インデックス指定で注意すべき点

EL式でインデックスを指定する場合、存在しない要素にアクセスしようとするとエラーにはなりませんが、空白として表示されるので注意が必要です。例えば以下のように要素数より大きいインデックスを指定した場合:


<p>4番目の果物:${fruits[3]}</p>

上記のように書いても、エラーにはなりませんが、実際の出力は何も表示されません。nullチェックやサイズチェックが必要な場面では、JSTLの<c:if>を併用すると便利です。

7. Listや配列のサイズを確認するには

7. Listや配列のサイズを確認するには
7. Listや配列のサイズを確認するには

リストや配列のサイズを確認したい場合、EL式では直接size()メソッドを使うことはできませんが、JSTLと組み合わせることで対応できます。


<c:if test="${fn:length(fruits) > 0}">
    <p>果物リストには要素があります。</p>
</c:if>

このように、JSPでのEL式は基本的にデータ取得に特化し、細かいロジックはJSTLに任せるのが良い設計です。

8. Mapとの違いに注意しよう

8. Mapとの違いに注意しよう
8. Mapとの違いに注意しよう

EL式ではListや配列のアクセスと似た形でMapにもアクセスできますが、キーを指定する場合は文字列である必要があります。


<p>ユーザー名:${userMap['name']}</p>

リストや配列は数値インデックス、マップは文字列キーと覚えておくと、JSPのEL式でのデータアクセスがより分かりやすくなります。

関連記事:
カテゴリの一覧へ
新着記事
New1
JSP
JSPのEL式で配列やリストを扱う方法を完全ガイド!インデックスアクセスの書き方も解説
新規投稿
New2
Spring
Springのエラーメッセージを国際化!ValidationMessages.propertiesの書き方を初心者向けに解説
更新記事
New3
Java
JavaのStringクラスとindexOfメソッドを完全解説!初心者でも理解できる文字列検索の使い方
更新記事
New4
Java
Javaのラムダ式は資格試験に出る?Silver・Goldの頻出ポイントと捨て問を見極めよう
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.3
Java&Spring記事人気No3
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.4
Java&Spring記事人気No4
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.5
Java&Spring記事人気No5
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.6
Java&Spring記事人気No6
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.7
Java&Spring記事人気No7
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.8
Java&Spring記事人気No8
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法