[spring boot 5]ログインとユーザー登録画面を作ろう③

[spring boot 5]ログインとユーザー登録画面を作ろう③

前回まででは「誕生日」「年齢」の入力欄に対してエラーメッセージを出す設定をしました。

今回は他項目に対しても条件をつけてエラーメッセージを表示させる方法を紹介していきます。

こういった入力チェックを行うことを「バリデーション」と言います。

今回はバリデーションを実装していく。

といえばカッコよく聞こえますね。

使用環境

MacBook Pro (15-inch, 2016)

Eclipse:Oxygen.3a Release (4.7.3a)

spring boot バージョン:2.1.0

使用ライブラリ:DevTool,Lombok,H2,JDBC,Thymeleaf,Web

作成するプログラム

ユーザー登録画面にて入力フォームを未記入のままユーザー登録を押すと

各項目に関してエラーメッセージを表示するようにしていきます。

使用するコード

① SignupForm.java

② SignupController.java

③ messages.properties

① SignupForm.java

@NotBlank:文字列がnull、空文字、空白スペースのみでないことをチェック

@Email:文字列がメールアドレス形式かチェック

@Length(min = ?,max = ?):文字列の長さが指定した範囲の長さであるかチェック

@Pattern(regexp = “^[a-zA-Z0-9]+$”):指定した正規表現に当てはまっているかチェック

@NotNull:nullでないことをチェック

@Min(?):指定した数値以上であるかをチェック

@Max(?):指定した数値以下であるかをチェック

@AssertFalse:falseかどうかをチェック

② SignupController.java

バリデーションを実装するためには、引数に設定されているSignupFormクラスに

@Validated

をつけます。

この後に何も入力せずにユーザー登録を押してみます。

このようになっていればOKです。

また、前回と同じように英語表記のままですので、日本語表記へと変更していきます。

③ messages.properties

messages.propertiesをこのように変更することで日本語表記に出来ます。

パスワードの部分を例に取ってみると

signupForm.password=パスワード と宣言することで

以下の{0}に「パスワード」が代入されます。

SignupForm.javaにて

@Length(min = 4,max = 16)のアノテーションをつけていますので、

{1}:maxに指定した数値

{2}:minに指定した数値

が入ります。

宣言した順ではなく、パラメーター名の昇順で数値に入っていきますので、注意してください。

これでまた何も入力せずにユーザー登録を押してみます。

エラーメッセージが日本語になっていればOKです。

次回は、エラーメッセージを個々の入力欄の下に表示したいと思います。