カテゴリ: Spring 更新日: 2025/07/11

SpringのModelAndViewクラスとsetStatusメソッドの使い方を完全ガイド!初心者でも安心

ModelAndViewのsetStatus
ModelAndViewのsetStatus

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

生徒

「SpringでHTTPステータスコードを設定する方法を教えてください!」

先生

「SpringではModelAndViewクラスのsetStatusメソッドを使って、簡単にHTTPステータスコードを設定できます。」

生徒

「ステータスコードを設定する必要がある場面ってどんなときですか?」

先生

「例えば、リクエストに対する適切なレスポンスを示すために、200(成功)や404(見つからない)などのコードを返したい場合です。それでは、setStatusメソッドの基本的な使い方を見ていきましょう!」

1. SpringのModelAndViewクラスとは?

1. SpringのModelAndViewクラスとは?
1. SpringのModelAndViewクラスとは?

SpringのModelAndViewクラスは、ビュー名とモデルデータを一緒に管理するためのクラスです。このクラスを使用することで、コントローラーでビューとデータの設定が簡単に行え、HTTPステータスコードも併せて設定できます。

例えば、APIレスポンスを管理したい場合に、ModelAndViewクラスを使えば、ビュー名、データ、HTTPステータスコードをまとめて処理できます。

2. setStatusメソッドとは?

2. setStatusメソッドとは?
2. setStatusメソッドとは?

setStatusメソッドは、ModelAndViewクラスにHTTPステータスコードを設定するためのメソッドです。このメソッドを使うと、クライアントに返すHTTPレスポンスのステータスを簡単に指定できます。

HTTPステータスコードは、クライアントにリクエストの結果を伝えるための重要な要素であり、200(OK)、404(Not Found)、500(Internal Server Error)などがよく使われます。

3. 基本的な使い方

3. 基本的な使い方
3. 基本的な使い方

以下は、setStatusメソッドを使ってHTTPステータスコードを設定する例です。


import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class SetStatusController {

    @GetMapping("/setstatus")
    public ModelAndView setStatusExample() {
        ModelAndView modelAndView = new ModelAndView("statusView");
        modelAndView.addObject("message", "リクエストは正常に処理されました。");
        modelAndView.setStatus(HttpStatus.OK); // HTTPステータス200を設定
        return modelAndView;
    }
}

この例では、setStatusメソッドを使ってHTTPステータスコードをHttpStatus.OK(200)に設定しています。addObjectでモデルデータも追加しています。

4. 実行結果の例

4. 実行結果の例
4. 実行結果の例

上記のコードを実行すると、以下のようなHTTPレスポンスが返されます。


HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8

リクエストは正常に処理されました。

5. 応用編:エラーステータスコードの設定

5. 応用編:エラーステータスコードの設定
5. 応用編:エラーステータスコードの設定

以下は、条件に応じてHTTPステータスコードを設定する例です。エラーが発生した場合に、ステータスコードを404(Not Found)に設定します。


@GetMapping("/errorstatus")
public ModelAndView errorStatusExample(boolean isError) {
    ModelAndView modelAndView = new ModelAndView("errorView");

    if (isError) {
        modelAndView.addObject("error", "ページが見つかりませんでした。");
        modelAndView.setStatus(HttpStatus.NOT_FOUND); // HTTPステータス404を設定
    } else {
        modelAndView.addObject("message", "正常に処理されました。");
        modelAndView.setStatus(HttpStatus.OK); // HTTPステータス200を設定
    }

    return modelAndView;
}

この例では、setStatusメソッドを使って動的にステータスコードを変更しています。

6. よくある質問

6. よくある質問
6. よくある質問

Q: setStatusメソッドの主な用途は何ですか?

A: 主に、クライアントに対して適切なHTTPステータスコードを返したい場合に使用します。例えば、成功(200)、エラー(404)、サーバーエラー(500)などのレスポンスを明示的に設定できます。

Q: このメソッドはどのような場面で役立ちますか?

A: REST APIのレスポンスや、動的なビューを生成する際にステータスコードを管理する場合に非常に役立ちます。

Q: setStatusメソッドは必須ですか?

A: 必須ではありませんが、ステータスコードを明示的に設定することで、クライアントとの通信がより正確になります。

7. まとめ

7. まとめ
7. まとめ

今回はSpringのModelAndViewクラスとsetStatusメソッドについて解説しました。setStatusメソッドは、HTTPレスポンスのステータスコードを簡単に設定できる便利なメソッドです。ステータスコードを明示的に指定することで、クライアントに対して適切なレスポンスを提供でき、エラーや成功状態を明確に伝えられます。

実際の開発では、REST APIや動的なページ生成において、HTTPステータスコードを正確に管理することが重要です。このメソッドを使えば、コードの可読性と保守性を向上させつつ、柔軟にレスポンスを制御できます。

以下は今回学んだ知識を整理したサンプルコードです。


@GetMapping("/statussummary")
public ModelAndView statusSummaryExample(boolean isValid) {
    ModelAndView modelAndView = new ModelAndView();

    if (isValid) {
        modelAndView.setViewName("successView");
        modelAndView.setStatus(HttpStatus.OK);
        modelAndView.addObject("result", "操作が成功しました。");
    } else {
        modelAndView.setViewName("errorView");
        modelAndView.setStatus(HttpStatus.BAD_REQUEST);
        modelAndView.addObject("error", "無効なリクエストです。");
    }

    return modelAndView;
}

このコードでは、リクエストの状態に応じてビューとステータスコードを動的に設定し、適切なレスポンスをクライアントに返します。

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

生徒

「HTTPステータスコードを使い分けるのって重要なんですね!」

先生

「その通りです。ステータスコードを正しく設定することで、クライアントがレスポンスを正確に理解できます。特にAPI開発では欠かせない知識ですよ。」

生徒

「例えば404を設定するときはどうすればいいんですか?」

先生

「404(Not Found)はHttpStatus.NOT_FOUNDを使えば簡単に設定できます。エラー画面のカスタマイズにも役立つので覚えておきましょう!」

Springの学習を効率化したい方へ

この記事の内容をもっと深く知るには、以下の入門書が最適です。

Spring Framework超入門をAmazonで見る
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Like」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
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のBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.5
Java&Spring記事人気No5
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.6
Java&Spring記事人気No6
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説