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

JSPのEL式でオブジェクトのプロパティにアクセスする方法を初心者向けに完全ガイド!

EL式でオブジェクトのプロパティにアクセスする方法
EL式でオブジェクトのプロパティにアクセスする方法

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

生徒

「JSPで、オブジェクトの中の値を簡単に取り出す方法ってありますか?」

先生

「ありますよ。JSPではEL式(Expression Language)を使うと、すごく簡単にオブジェクトのプロパティにアクセスできます。」

生徒

「EL式って、${}で書くやつですよね?」

先生

「そうです。EL式を使えば、JSPでのデータ表示がとても楽になります。今日はその基本と使い方を一緒に見ていきましょう!」

1. JSPのEL式とは何か?

1. JSPのEL式とは何か?
1. JSPのEL式とは何か?

EL式(Expression Language)は、JavaServer Pages(JSP)でJavaのオブジェクトやプロパティに簡単にアクセスするための式記法です。${}の形で記述することで、Javaのコードを直接書かずに値を取得することができます。

例えば、スコープに保存されたオブジェクトの中のプロパティを表示するには、以下のように書きます。


<p>名前:${user.name}</p>

このように書くことで、userという名前のオブジェクトのnameプロパティにアクセスして、その値をHTMLに表示できます。

2. JavaBeansのプロパティにアクセスする方法

2. JavaBeansのプロパティにアクセスする方法
2. JavaBeansのプロパティにアクセスする方法

EL式でプロパティにアクセスするには、JavaBeansの形式でオブジェクトが設計されている必要があります。つまり、getterメソッドを持っている必要があります。

以下に、JavaBeansの例を示します。


public class User {
    private String name;
    private int age;

    public User() {}

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

このUserクラスのnameageといったプロパティは、EL式で次のようにアクセスできます。


<p>ユーザー名:${user.name}</p>
<p>年齢:${user.age}</p>

3. リクエストスコープ・セッションスコープとの関係

3. リクエストスコープ・セッションスコープとの関係
3. リクエストスコープ・セッションスコープとの関係

EL式でオブジェクトにアクセスするには、オブジェクトがスコープに保存されている必要があります。主に使われるのは以下の4つのスコープです。

  • pageスコープ
  • requestスコープ
  • sessionスコープ
  • applicationスコープ

例えば、Servletで以下のようにユーザーオブジェクトをrequestスコープに保存したとします。


User user = new User();
user.setName("山田太郎");
user.setAge(25);
request.setAttribute("user", user);

この場合、JSPでは以下のようにEL式でプロパティにアクセスできます。


<p>名前:${user.name}</p>
<p>年齢:${user.age}</p>

4. プロパティがオブジェクトを含んでいる場合のアクセス

4. プロパティがオブジェクトを含んでいる場合のアクセス
4. プロパティがオブジェクトを含んでいる場合のアクセス

EL式では、ネストされたオブジェクトにも簡単にアクセスできます。たとえば、UserクラスにAddressクラスのプロパティがある場合を考えましょう。


public class Address {
    private String city;

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

public class User {
    private Address address;

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

このとき、EL式では以下のように記述することで、都市名にアクセスできます。


<p>都市:${user.address.city}</p>

5. EL式の補足:nullの扱いやデフォルト値

5. EL式の補足:nullの扱いやデフォルト値
5. EL式の補足:nullの扱いやデフォルト値

EL式では、アクセスしようとしたプロパティがnullでもエラーにはなりません。その代わり、空白が表示されます。

また、nullや空文字に対してデフォルト値を設定したい場合は、empty演算子や?:演算子を使います。


<p>都市:${empty user.address.city ? '不明' : user.address.city}</p>

6. EL式で配列やリストの要素にアクセスする

6. EL式で配列やリストの要素にアクセスする
6. EL式で配列やリストの要素にアクセスする

EL式では、配列やListの要素にも簡単にアクセスできます。インデックスを指定することで要素を取得できます。


<p>最初の要素:${items[0]}</p>

ただし、リストの要素数よりも大きいインデックスを指定すると何も表示されないので注意が必要です。

7. Map形式のオブジェクトに対するEL式のアクセス

7. Map形式のオブジェクトに対するEL式のアクセス
7. Map形式のオブジェクトに対するEL式のアクセス

Mapに対してもEL式は有効です。キーを指定することで値を取得できます。


<p>値:${map['key1']}</p>

ダブルクオーテーションではなく、シングルクオーテーションを使うのがポイントです。

8. JSTLとEL式の併用でより便利に

8. JSTLとEL式の併用でより便利に
8. JSTLとEL式の併用でより便利に

JSPでは、EL式と一緒にJSTL(JavaServer Pages Standard Tag Library)を使うことで、条件分岐やループ処理が簡単に記述できます。


<c:if test="${user.age >= 20}">
    <p>成人です。</p>
</c:if>

このように、JSTLとEL式を組み合わせれば、ロジックをJavaコードに書かずにJSPだけで表現できます。

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazon広告リンク

関連記事:
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「NotIn」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「In」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
Spring Bootの設定・プロパティ・プロファイルの外部化優先順位を完全解説!初心者にもわかる設定ファイルの読み込み順
新規投稿
New4
Spring
SpringDataJPAのJPAクエリメソッド「Not」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
Spring
SpringのModelクラスの使い方を完全ガイド!初心者でも安心
No.6
Java&Spring記事人気No6
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.7
Java&Spring記事人気No7
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.8
Java&Spring記事人気No8
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク