カテゴリ: Spring 更新日: 2026/01/01

JavaのSpringで使う@Emailアノテーション入門ガイド!初心者でもわかるバリデーション

Springの@Emailアノテーション
Springの@Emailアノテーション

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

生徒

「Springのフォーム入力でメールアドレスをチェックする方法ってありますか?」

先生

「はい、Springでは@Emailアノテーションを使うことで、入力された文字列がメールアドレス形式かどうかを簡単に検証できますよ。」

生徒

「なるほど!具体的にどうやって使うんですか?」

先生

「それでは、実際の使い方やエラー処理の流れを一緒に見ていきましょう。」

1. @Emailアノテーションとは?

1. @Emailアノテーションとは?
1. @Emailアノテーションとは?

Springの@Emailアノテーションは、ユーザーが入力した文字列が正しいメールアドレス形式かどうかをチェックするためのバリデーション機能です。フォーム入力のバリデーションでは必須のチェック項目のひとつで、例えば「example@test.com」のような形式でなければエラーとなります。これにより、誤ったメールアドレスの登録を未然に防ぐことができます。

2. @Emailアノテーションの基本的な使い方

2. @Emailアノテーションの基本的な使い方
2. @Emailアノテーションの基本的な使い方

実際のSpringアプリケーションでは、エンティティクラスやDTOにアノテーションを付与して利用します。以下のように使うのが基本です。


import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;

public class UserForm {

    @NotBlank(message = "メールアドレスは必須です")
    @Email(message = "有効なメールアドレスを入力してください")
    private String email;

    // getterとsetter
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

この例では、@NotBlankで空文字を禁止し、@Emailでメール形式をチェックしています。初心者でも簡単に導入でき、入力チェックの品質を向上できます。

3. バリデーションエラーの確認方法

3. バリデーションエラーの確認方法
3. バリデーションエラーの確認方法

Spring MVCでは、コントローラで@Validを利用することでバリデーションが自動で実行されます。もし入力が不正であれば、エラーメッセージを取得して画面に表示することが可能です。


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import jakarta.validation.Valid;

@Controller
public class UserController {

    @GetMapping("/register")
    public String showForm(UserForm userForm) {
        return "register";
    }

    @PostMapping("/register")
    public String submitForm(@Valid UserForm userForm, BindingResult bindingResult, Model model) {
        if (bindingResult.hasErrors()) {
            return "register";
        }
        model.addAttribute("message", "登録が完了しました");
        return "success";
    }
}

このように、入力が正しくない場合はフォーム画面に戻り、ユーザーにエラーを知らせることができます。

4. @Emailアノテーションの注意点

4. @Emailアノテーションの注意点
4. @Emailアノテーションの注意点

@Emailはあくまで「形式チェック」を行うだけで、存在するメールアドレスかどうかまでは検証できません。例えば「test@test」と入力した場合は無効と判定されますが、「aaa@bbb.com」のような存在しないアドレスも形式としては有効と見なされます。そのため、必要に応じて追加の検証や、メール送信による確認が必要です。

5. エラーメッセージのカスタマイズ

5. エラーメッセージのカスタマイズ
5. エラーメッセージのカスタマイズ

@Emailアノテーションでは、message属性を利用して独自のメッセージを設定できます。これにより、ユーザーにわかりやすい日本語の案内を行うことができます。


@Email(message = "メールアドレスの形式が正しくありません")
private String email;

このようにすれば、初心者にも理解しやすいエラーメッセージを表示できます。

6. 他のアノテーションと組み合わせる使い方

6. 他のアノテーションと組み合わせる使い方
6. 他のアノテーションと組み合わせる使い方

@Emailは、単独で使うよりも@NotBlank@Sizeと組み合わせて使うのがおすすめです。例えば、最大文字数を制限することで、不必要に長いメールアドレスの入力を防ぐことができます。


@NotBlank(message = "メールアドレスは必須です")
@Email(message = "メールアドレスの形式が正しくありません")
@Size(max = 100, message = "メールアドレスは100文字以内で入力してください")
private String email;

7. フロントエンドと組み合わせたバリデーション

7. フロントエンドと組み合わせたバリデーション
7. フロントエンドと組み合わせたバリデーション

Springの@Emailアノテーションはサーバーサイドでの検証ですが、フロントエンドのHTML5にもtype="email"を指定することで、入力チェックが可能です。サーバーとフロントの両方でチェックすることで、ユーザー体験が向上します。


<form action="/register" method="post">
    <label for="email">メールアドレス</label>
    <input type="email" id="email" name="email" required />
    <button type="submit">送信</button>
</form>

このように、Springの@EmailアノテーションとHTML5のemail入力タイプを組み合わせると、安全かつ便利なフォーム入力チェックが実現できます。

8. 初心者が理解しておきたいポイント

8. 初心者が理解しておきたいポイント
8. 初心者が理解しておきたいポイント

初心者がSpringで@Emailアノテーションを使うときは、以下のポイントを覚えておくと安心です。

  • メール形式のチェックは@Emailで簡単に実装できる
  • 必須入力チェックは@NotBlankを組み合わせる
  • 文字数制限は@Sizeでコントロールする
  • 存在確認は別の仕組み(メール送信など)が必要
  • エラーメッセージはユーザーにわかりやすく設定する

これらを理解すれば、Springで安全なユーザー登録フォームを作れるようになります。

カテゴリの一覧へ
新着記事
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
SpringのBindingResult完全ガイド!初心者でもわかる入力チェックとgetTargetの使い方
Thymeleafのth:data-*属性を使いこなす!初心者向け完全解説
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説