カテゴリ: 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を使えば簡単に設定できます。エラー画面のカスタマイズにも役立つので覚えておきましょう!」

生成AIを基礎から学びたい方へ

ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。

AIスキルアカデミーの口コミ・評判を詳しく見る
カテゴリの一覧へ
新着記事
New1
Java
JavaのassertFalseとは?JUnit5のAssertionsクラスを初心者向けにわかりやすく解説
新規投稿
New2
Thymeleaf
ThymeleafでDBから取得したデータを編集フォームの初期値にセットする方法!Entity連携を初心者向けに解説
新規投稿
New3
Spring
JavaのSpringで使う@FutureOrPresentアノテーションを完全ガイド!初心者でもわかる日付バリデーション
新規投稿
New4
Java
JavaのLocalDateクラスのgetMonthValueメソッド完全ガイド!初心者でもわかる数値で月を取得する方法
新規投稿
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaサーブレットのdoPostメソッドとは?初心者向けにやさしく解説!
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpServletResponseクラスを初心者向けに徹底解説!
No.3
Java&Spring記事人気No3
Servlet
JavaのHttpServletRequestWrapperとgetSessionメソッドの使い方を徹底解説!初心者向けServletのセッション管理入門
No.4
Java&Spring記事人気No4
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
Servlet
JavaのHttpSessionインターフェースとgetSessionContextメソッドを徹底解説!初心者でもわかるセッション管理の基本
No.6
Java&Spring記事人気No6
Java
JavaのStringクラスとlengthメソッドを完全解説!初心者でも理解できる文字列の長さ取得の使い方
No.7
Java&Spring記事人気No7
Servlet
JavaのHttpSessionAttributeListenerとattributeRemovedメソッドの使い方を徹底解説!初心者でもわかるセッション属性の削除と監視
No.8
Java&Spring記事人気No8
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎