1. はじめに
今まで、null判定・undefined判定などの値があるかどうかを判定するロジックに悩むことが多かったので、メモ書きとしてまとめていたもの+調査したものを公開していきます。
今回はSpringBoot編です。先のVue2→Vue3へのアップデートでも使っていました。
2. SpringBootのアノテーションにおける値存在判定
①@NotNull
前回のObjects.isNull()と同様、nullかどうかを判定します。
もしnullであれば、エラーメッセージを返します。
// nullの値が渡されると「値はNullです。」のメッセージが返ります
@NotNull(message = "値はNullです。")
private String nullField;
②@NotEmpty
前回のStringUtils.isEmpty()と同様、nullと""(空文字)の時かどうかを判定します。
もしnullか空文字であれば、エラーメッセージを返します。
StringUtils.isEmpty()と同じく半角スペースのみの場合は検知されません。
// nullか空文字が渡されると「値はnullか空文字です。」のメッセージが返ります
@NotEmpty(message = "値はnullか空文字です。")
private String emptyField;
③@NotBlank
前回のStringUtils.isBlank()と同様、nullと""(空文字)、半角スペースかどうかを判定します。
もしnullか空文字、半角スペースであれば、エラーメッセージを返します。
// nullか空文字、半角スペースのみの値が渡されると「値がblankです。」のメッセージが返ります
@NotBlank(message = "値がblankです。")
private String emptyField;
但しこれらに関しては全角スペースはすり抜けます。
引数 | 引数(コード) | @NotNull | @NotEmpty | @NotBlank |
---|---|---|---|---|
null | null | true | true | true |
空文字 | '' | false | false | true |
半角スペース | ' ' | false | false | true |
半角スペース | ' ' | false | false | false |
3.さいごに
今回の記事は以上です。
DTOなどに含めて入れると便利だったので、紹介しました。
次回以降少しペースが落ちるかもしれませんが、気ままに更新していきますので、見ていただけたら嬉しいです。
4.参考資料
①@NotBlank、@NotEmpty、@NotNullの挙動の違いをSpring Boot + Thymeleafで整理する