カテゴリ: Spring 更新日: 2026/04/02

SpringのModelMap完全ガイド!初心者でもわかる画面表示とデータ受け渡し

ModelMapクラス
ModelMapクラス

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

生徒

「SpringでWebアプリを作っていると、画面にデータを渡したいときがありますよね。調べていたらModelMapという名前が出てきましたが、これは何をするための仕組みなんですか?」

先生

「ModelMapは、Spring MVCでビューに値を渡すためのとても便利な仕組みだよ。テンプレートエンジンやHTMLに変数を表示するために使われることが多いんだ。」

生徒

「ModelやModelAndViewもよく見ますが、どれを使えばいいのか迷ってしまいます。」

先生

「初心者にとってはややこしいよね。でも、ModelMapはとてもシンプルで扱いやすいから、まずは基本の使い方から学んでみよう。」

1. ModelMapとは何か?初心者向けにわかりやすく説明

「1. ModelMapとは何か?初心者向けにわかりやすく説明」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. ModelMapとは何か?初心者向けにわかりやすく説明
1. ModelMapとは何か?初心者向けにわかりやすく説明

SpringのWebアプリケーションでは、コントローラで作ったデータをテンプレートやHTMLへ渡して画面に表示します。たとえば「ユーザー名を表示したい」「計算結果を出したい」といったときに、ただ変数を作っただけではビューには届きません。そこで使うのがModelMapです。ModelMapはorg.springframework.uiに含まれるクラスで、値を箱に入れるように保存し、画面へ橋渡しする役割を持っています。JavaのMapと似ていますが、Web画面向けに使いやすく作られているので、初心者でもすぐに扱えます。

簡単なイメージとしては「画面へ渡したい情報を名前付きで保存するメモ帳」です。例えばこんなコードを見ると、ModelMapがどんなものか少し想像しやすくなります。


@GetMapping("/sample")
public String sample(ModelMap model) {
    model.addAttribute("text", "画面に表示したいメッセージ");
    return "sample";
}

このように、addAttributeで名前と値を渡すだけで、テンプレート側から取り出せるようになります。難しい設定は必要なく、初心者でも直感的に使えるのがModelMapの大きな特徴です。

2. ModelMapを使うメリットとは?Spring初心者が知るべきポイント

2. ModelMapを使うメリットとは?Spring初心者が知るべきポイント
2. ModelMapを使うメリットとは?Spring初心者が知るべきポイント

ModelMapを使う一番のメリットは、コントローラで用意した値を、名前を付けて整理しながら画面に渡せることです。たとえば「ユーザー名」「メッセージ」「商品名」といった複数のデータをまとめて保存しておけば、テンプレート側では名前を指定するだけで取り出せます。難しい処理は必要なく、箱に入れて取り出すような感覚で使えるので、扱いやすい仕組みです。

実際の動きが見えると分かりやすいので、簡単なサンプルを見てみましょう。


@GetMapping("/info")
public String info(ModelMap model) {
    model.addAttribute("title", "商品ページ");
    model.addAttribute("stock", 5);
    return "info";
}

このコードでは「title」と「stock」という2つの値をModelMapに追加しています。テンプレートでは、保存した名前でそのまま呼び出せば使えます。もし値がひとつだけのときでも、複数のときでも、書き方が変わらないのも初心者には嬉しいポイントです。

さらに、ControllerにModelMapを引数として書くだけで自動的に利用できるため、特別な設定が不要です。Spring MVCが裏側で処理してくれるので、開発者はデータ準備に集中できます。シンプルなコードで自然に画面へ値を渡せることこそが、ModelMapの大きな魅力と言えます。

3. Controllerでの基本的なModelMapの使い方

3. Controllerでの基本的なModelMapの使い方
3. Controllerでの基本的なModelMapの使い方

Spring MVCのControllerでは、ModelMapを引数に追加することで簡単にデータをビューへ渡すことができます。例えば、ユーザー名やメッセージなどをHTML表示したいときのサンプルを見てみましょう。


@Controller
public class WelcomeController {

    @GetMapping("/welcome")
    public String welcome(ModelMap model) {
        model.addAttribute("message", "ようこそSpringの世界へ");
        model.addAttribute("user", "田中太郎");
        return "welcome";
    }
}

このようにModelMapへ値を登録すると、テンプレート側で表示することができます。たったこれだけで、ビューで変数が使えるようになります。

4. ModelMapで渡した値をHTMLで表示する例

「4. ModelMapで渡した値をHTMLで表示する例」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. ModelMapで渡した値をHTMLで表示する例
4. ModelMapで渡した値をHTMLで表示する例

次に、Controllerから受け取った値をThymeleafなどのテンプレートエンジンで表示する方法です。ModelMapに保存したキーをそのまま使い表示できます。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Welcome</title>
</head>
<body>
    <h1 th:text="${message}"></h1>
    <p th:text="${user}"></p>
</body>
</html>

このテンプレートでは、messageとuserの値がそのままHTMLに表示されます。SpringとThymeleafを組み合わせると、画面表示までの流れがとても自然です。

5. addAttributeで複数の値を渡す方法と便利な使い方

5. addAttributeで複数の値を渡す方法と便利な使い方
5. addAttributeで複数の値を渡す方法と便利な使い方

ModelMapでは、必要なだけ値を追加して問題ありません。例えば、商品名、価格、説明文など、複数項目を画面へ渡せます。テーブル表示や検索結果一覧などにも応用できます。値をまとめて扱えるので、初心者でも管理しやすい方法です。


model.addAttribute("productName", "ノートパソコン");
model.addAttribute("price", 98000);
model.addAttribute("description", "軽量で便利なパソコンです");

このように複数追加しても書き方は変わりません。Springは自動的に値をビューへ渡します。

6. Modelとの違いを理解するとさらに便利

6. Modelとの違いを理解するとさらに便利
6. Modelとの違いを理解するとさらに便利

初心者がつまずきやすいのが、ModelとModelMapとModelAndViewの違いです。どれも同じように見えますが、実際には使い方に差があります。Modelはインターフェースで、ModelMapはその実装に近い扱いやすい形です。ModelMapはMapのように扱えるため、値の追加がわかりやすく、Spring初心者でも理解しやすい点が魅力です。

7. Controllerの戻り値と画面遷移の関係

「7. Controllerの戻り値と画面遷移の関係」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. Controllerの戻り値と画面遷移の関係
7. Controllerの戻り値と画面遷移の関係

ModelMapを使う場合、Controllerの戻り値は文字列になります。この文字列はテンプレートファイル名やビュー名を示します。Spring MVCはその文字列と同じ名前のHTMLファイルを探し画面に表示します。テンプレートと値が自動的につながる仕組みは、Springが便利だと言われる理由のひとつです。

8. フォーム入力とModelMapの組み合わせ

8. フォーム入力とModelMapの組み合わせ
8. フォーム入力とModelMapの組み合わせ

ModelMapは単に画面へ出すだけでなく、入力フォームや結果画面にも使えます。例えば、ユーザーが入力した名前やコメントを画面に戻す場合にもModelMapが活躍します。Webアプリケーションでは必ず必要になる機能なので、初心者のうちに覚えておくと大きな強みになります。

9. よくあるエラーと注意ポイント

9. よくあるエラーと注意ポイント
9. よくあるエラーと注意ポイント

初心者が多く遭遇するエラーは、テンプレートで変数名を間違えることです。Controllerで追加したキー名とテンプレート側の名前が一致しないと、空欄になったりエラーになります。また、returnで指定するビュー名が間違っていると画面が表示されません。このようなときはスペルとファイル名を確認するだけで解決することが多いので焦らなくても大丈夫です。

10. Spring MVCとModelMapを理解するとWeb開発が楽になる

「10. Spring MVCとModelMapを理解するとWeb開発が楽になる」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

10. Spring MVCとModelMapを理解するとWeb開発が楽になる
10. Spring MVCとModelMapを理解するとWeb開発が楽になる

SpringのWebアプリ開発では、Controllerからビューへデータを渡す場面が何度も出てきます。ModelMapは扱いやすく、テンプレートエンジンとの連携も自然なので、初心者がWeb開発に慣れるための最初のステップとして、とても優れた仕組みです。一度理解できれば、一覧表示、入力フォーム、ログイン画面、商品詳細など、あらゆる画面に応用できます。Spring MVCを学びたい人にとって、ModelMapの理解は大きな基礎になります。

まとめ

まとめ
まとめ

SpringでWebアプリケーションを作るとき、多くの開発者が最初に学ぶ仕組みがControllerとビューの連携です。画面に文字を表示したり、データベースから取得した結果を一覧で表示したり、フォームで入力した名前やメッセージを再び画面へ返したりするためには、値を安全にわかりやすく渡す必要があります。そこで役に立つのがModelMapです。ModelMapはorg.springframework.uiに含まれており、初心者でも無理なく理解できる仕組みなので、Spring MVCの画面表示やテンプレートエンジンを扱ううえで欠かせない存在です。ModelMapを使えば、テンプレートエンジンのThymeleafやFreemarkerに値を渡し、変数を表示することができるため、画面作りがとても滑らかになります。

Springの初心者が最初に混乱しやすいのが、Model、ModelMap、ModelAndViewの違いですが、今回のまとめとして覚えておきたいのは、ModelMapはMapのように値を保存できて扱いやすいという点です。画面に渡したい値をaddAttributeで追加し、キーを指定するだけでテンプレート側から表示できるため、すぐに使いこなせるようになります。商品情報やメッセージ、フォームの入力内容などはもちろん、複数の値をまとめて渡すこともでき、Webアプリケーションのあらゆる場面に応用できます。さらに、Controllerの戻り値としてビュー名を返せば、Spring MVCが自動的にテンプレートを探し、登録した値を画面表示に反映してくれます。

実際のアプリケーション開発では、ModelMapは一覧画面、入力画面、確認画面、詳細画面、検索結果の表示など、多くの場面で活躍します。使い方はシンプルですが、Webアプリ全体の流れを理解していくうえで非常に役立つ存在です。ログイン状態のユーザー名を表示したり、購入履歴やお知らせ一覧を出したり、画面を少しずつ動的にしていくことで、より意味のあるWebアプリケーションになります。ModelMapはただのデータ置き場ではなく、画面と処理を結びつける大切な役割を持つことがよくわかります。

ここであらためて、ModelMapを使った実行例を確認しておきましょう。具体的な処理と画面出力の関係がはっきり見えると、初心者でも安心して開発が進められます。Controllerでは値を登録し、画面ではその値を表示するだけです。難しい設定を追加しなくても、必要な情報を渡すだけで動作します。

ModelMapを使った再確認サンプル


@Controller
public class SampleController {

    @GetMapping("/sample")
    public String sample(ModelMap model) {
        model.addAttribute("title", "商品情報");
        model.addAttribute("name", "スマートフォン");
        model.addAttribute("price", 50000);
        return "sample";
    }
}

次にテンプレートの表示例です。今回はThymeleafの構文を例にしていますが、同じようにキー名で値を呼び出せます。これだけで画面に動的な情報を表示できるため、最初の一歩としてとてもわかりやすい仕組みです。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:text="${title}">sample</title>
</head>
<body>
    <h1 th:text="${name}"></h1>
    <p th:text="${price}"></p>
</body>
</html>

Spring MVCを使ううえで覚えておきたいのは、値を渡す相手は「画面」だけではなく、ユーザーの操作やアプリの処理に合わせて変化するということです。ModelMapは、単純な文字列を渡すだけでなく、リストやオブジェクトなどにも使えるため、検索結果一覧をそのまま画面に表示することも可能です。例えば、複数の商品を表示したい場合、Javaのリストをそのまま登録することもできます。表示する側は繰り返し構文で展開できるので、商品一覧や投稿一覧などには非常に向いています。

リストを渡す例


List<String> items = List.of("本", "カメラ", "ゲーム機");
model.addAttribute("items", items);

<ul>
    <li th:each="item : ${items}" th:text="${item}"></li>
</ul>

このように、ModelMapは小さな画面表示だけでなく、実用的な一覧表示にも応用できます。Springの開発でよく使われるパターンなので、実務でも学習でも役立ちます。慣れてくると、Controllerでの処理とビューの構成が自然に結び付いていき、Webアプリケーション全体の流れがつかめるようになります。

異なる画面や複数のテンプレートと連携するときにもModelMapは相性がよいため、Webアプリ全体の設計を丁寧に作っていくことができます。初心者のうちにModelMapを理解しておけば、複雑な画面設計も怖くありません。同じ仕組みで値を渡せることは、開発を続けるうえで大きな安心材料になります。

先生と生徒の振り返り会話

生徒

「ModelMapはいろいろな値を追加できる便利な仕組みなんですね。リストや複数の値を渡せるのはとても使いやすいと思いました。」

先生

「そのとおりだよ。画面に文字を出すだけでなく、一覧表示やフォーム処理にも使えるのが良いところなんだ。画面遷移や値の管理がわかりやすくなるから、Webアプリの開発がとても進めやすくなるんだ。」

生徒

「ModelとModelMapの違いも理解できました。Mapのように使えるので、直感的で覚えやすいと思いました。」

先生

「これから他の画面や処理にも応用できるから、同じ書き方でどんどん使っていくといいよ。ログイン画面や商品一覧など、たくさんの場面で役に立つはずだよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Spring MVCで画面にデータを表示するとき、どうしてModelMapが必要なのですか?

Spring MVCでは、コントローラで処理した結果を画面に渡す必要があります。メッセージや商品名などの値は、ModelMapに追加することでテンプレートに表示できます。ModelMapが橋渡しの役割をしてくれるため、値が安全にビューへ渡る仕組みが成り立ちます。Webアプリ開発ではとても基本的で重要な役割を持っています。

ModelMapとModelの違いがよくわかりません。初心者でも理解できる簡単な違いはありますか?

Modelはインターフェースで、ModelMapはそれを扱いやすい形にしたものです。ModelMapはMapのようにキーと値を保存でき、addAttributeで自由に値を追加できます。初心者にとっては、ModelMapの方が直感的に使えるため、理解が進みやすいという利点があります。
カテゴリの一覧へ
新着記事
New1
Spring
Spring Securityの新標準!SecurityFilterChainとHttpSecurity DSLの書き方を初心者向けに解説
更新記事
New2
Java
Javaの抽象クラス(abstract)を完全ガイド!継承と設計のルールを学ぶ
更新記事
New3
Servlet
JavaのGenericServletクラスのgetInitParameterNamesメソッドを徹底解説!初心者でもわかる初期化パラメータの取得方法
更新記事
New4
JSP
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説
更新記事
人気記事
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
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.6
Java&Spring記事人気No6
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.7
Java&Spring記事人気No7
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.8
Java&Spring記事人気No8
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門