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

JavaのSpringで使う@Lengthアノテーション入門ガイド!初心者でもわかる入力チェック

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

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

生徒

「Springで文字列の長さを制限してチェックする方法はありますか?」

先生

「はい、@Lengthアノテーションを使えば、文字列の最小長さや最大長さを簡単に指定できますよ。」

生徒

「例えばパスワードが8文字以上でないとダメ、というルールも書けますか?」

先生

「もちろん可能です。実際のコード例を一緒に見ていきましょう。」

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

「1. @Lengthアノテーションとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

@Lengthアノテーションは、Hibernate Validatorが提供している文字列専用のバリデーションアノテーションです。JavaのSpringアプリケーションでフォーム入力をチェックするときによく使われ、文字列が一定の範囲の長さに収まっているかどうかを検証します。例えば「ユーザー名は3文字以上50文字以下」といったルールを簡単に定義できます。

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

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

実際のコードでは、DTOやエンティティのフィールドに@Lengthを付与して使います。以下のサンプルはユーザー名を検証する例です。


import org.hibernate.validator.constraints.Length;
import jakarta.validation.constraints.NotBlank;

public class UserForm {

    @NotBlank(message = "ユーザー名は必須です")
    @Length(min = 3, max = 50, message = "ユーザー名は3文字以上50文字以内で入力してください")
    private String username;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

この例では必須入力の@NotBlankと組み合わせることで、空入力も防止しつつ長さ制限を行っています。

3. @Lengthと@Sizeの違い

3. @Lengthと@Sizeの違い
3. @Lengthと@Sizeの違い

@Lengthとよく似たアノテーションに@Sizeがあります。@Sizeはコレクションや配列にも利用できますが、@Lengthは文字列専用です。そのため、文字列に特化したバリデーションを書くときには@Lengthを使う方がわかりやすくなります。

4. Spring MVCでのバリデーション処理

「4. Spring MVCでのバリデーション処理」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. Spring MVCでのバリデーション処理
4. Spring MVCでのバリデーション処理

Spring MVCのコントローラで@ValidとBindingResultを利用すれば、@Lengthによるチェックは自動的に行われます。以下は入力フォームの検証例です。


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("/user")
    public String showForm(UserForm userForm) {
        return "userForm";
    }

    @PostMapping("/user")
    public String submitForm(@Valid UserForm userForm, BindingResult bindingResult, Model model) {
        if (bindingResult.hasErrors()) {
            return "userForm";
        }
        model.addAttribute("username", userForm.getUsername());
        return "success";
    }
}

このように記述すれば、エラー時には自動的にエラーメッセージが処理されます。

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

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

@Lengthアノテーションではmessage属性を指定することで、わかりやすい日本語メッセージを表示できます。初心者向けには「〇文字以上〇文字以内で入力してください」と具体的に伝えるのがおすすめです。


@Length(min = 8, max = 20, message = "パスワードは8文字以上20文字以内で入力してください")
private String password;

6. 入力チェックの実用例

6. 入力チェックの実用例
6. 入力チェックの実用例

実際のアプリケーションでは、ユーザー登録フォームやブログ記事のタイトル入力などさまざまな場面で@Lengthが使われます。以下のように複数フィールドに適用してバリデーションを強化できます。


@Length(min = 5, max = 100, message = "タイトルは5文字以上100文字以内で入力してください")
private String title;

@Length(min = 10, max = 1000, message = "本文は10文字以上1000文字以内で入力してください")
private String content;

7. HTMLフォームとの連携

「7. HTMLフォームとの連携」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. HTMLフォームとの連携
7. HTMLフォームとの連携

HTMLフォームの入力欄にmaxlengthを設定しておくと、フロントエンドでも入力制限をかけられます。これをSpringの@Lengthと併用すれば、より安全で使いやすいフォームが作れます。


<form action="/user" method="post">
    <label for="username">ユーザー名</label>
    <input type="text" id="username" name="username" maxlength="50" required />
    <button type="submit">送信</button>
</form>

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

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

初心者がSpringの@Lengthアノテーションを使う際に押さえておきたいポイントは以下の通りです。

  • 文字列の長さ制限に特化したバリデーション
  • @NotBlankと組み合わせて必須入力もチェック
  • @Sizeとの違いを理解して使い分ける
  • エラーメッセージはわかりやすい日本語にカスタマイズする
  • フロントエンドとサーバーサイドで二重チェックを行うと安心

これらを理解すれば、実際の開発現場でも@Lengthを活用して安全で信頼性の高い入力フォームを実装できます。

カテゴリの一覧へ
新着記事
New1
Java
JavaのStreamのmaxを完全解説!初心者でもわかる最大値の取得方法
新規投稿
New2
JSP
JSPで改行やスペースを正しく表示する方法!HTMLとの連携ポイントも解説
更新記事
New3
Spring
SpringのJpaRepositoryとsaveAndFlushの使い方を完全ガイド!初心者でもわかるデータ操作
更新記事
New4
Spring
Springの@Autowiredアノテーションの使い方を完全ガイド!初心者でもわかる依存性注入
更新記事
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
No.4
Java&Spring記事人気No4
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.5
Java&Spring記事人気No5
JSP
JSPでフォームを表示して入力を受け取る基本手順をやさしく解説!初心者向けフォーム処理の入門ガイド
No.6
Java&Spring記事人気No6
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.7
Java&Spring記事人気No7
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.8
Java&Spring記事人気No8
Java
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得