質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

1038閲覧

Java SpringBoot でのValidation設定でエラーメッセージを分ける方法

sorosoro1111

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2023/02/05 13:01

編集2023/02/07 07:38

解決したいこと

 Java SpringBoot でのValidation設定でのPattenを複数使う方法を知りたいです。
今現状では、ValidationMessages.propertiesで@Patternに対しての一つのエラーメセージしか設定できていません。
半角英数字のみの"^[a-zA-Z0-9]+$"のパターン :{0}は半角英数字で入力してください
半角数字のみの"^[0-9]+$"パターン :{0}は半角数字で入力してください
というふうにエラーメッセージを分けたいのですが、いい方法はないでしょうか?

該当するソースコード

ValidationMessages.properties

Pattern={0}は半角英数字で入力してください

form.java

java

1@Pattern(regexp = "^[a-zA-Z0-9]+$", groups = ValidGroup2.class) 2 private String password; 3 4@Pattern(regexp = "^[0-9]+$", groups = ValidGroup2.class) 5 private String telephoneNumber;

今だとtelephoneNumberとpasswordで同じエラーメッセージがでます。
telephoneNumberのパターンに対してのエラーメッセージを設定したいです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2023/02/05 20:36

公式ドキュメントは探してもらうとして、ちょっと古い記事で古いバージョンですが、以下試してみてください。 https://arakan-pgm-ai.hatenablog.com/entry/2017/03/27/203452 ※あくまで試してもらいたいだけなので、こちらに書いています >Pattern.chktest のように、PatternにFormの変数名をつけることで、専用エラーメッセージにできます。 ただこちら「springboot validation pattern」で調べたらすぐ出てきた記事なので、 もう少し自身で調べたこと試したことは具体的に記載してもらいたいです。
guest

回答2

0

ベストアンサー

入力チェック:@Patternと正規表現で独自チェックする。STS3+Spring Boot+thymeleaf とか
【Spring Boot】入力チェックのバリデーションメッセージを任意に変更する方法 から、

Pattern.password={0}は半角英数字で入力してください Pattern.telephoneNumber={0}は半角数字で入力してください

は如何でしょうか。(※実際の動作は試していません)

投稿2023/02/05 18:05

編集2023/02/05 18:18
jimbe

総合スコア12632

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sorosoro1111

2023/02/07 07:37

ご回答ありがとうございます。 動作しました。
guest

0

半角英数字のみの"^[a-zA-Z0-9]+$"のパターンと半角数字のみの"^[0-9]+$"パターンも設定したいのですが、いい方法はないでしょうか?

java

1@Pattern(regexp = "^([0-9]+|[a-zA-Z0-9]+)$"

see: https://spring.pleiades.io/specifications/platform/8/apidocs/javax/validation/constraints/pattern

正規表現は、Java の正規表現の規則に従います。PatternSE を参照してください。

see: https://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Pattern.html

論理演算子
X|Y XまたはY

かと。

投稿2023/02/05 13:15

編集2023/02/05 13:17
shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2023/02/05 18:19 編集

>エラーメッセージを分けたい が主題ではないでしょうか・・・。
shiketa

2023/02/06 01:34

たしかに。 orz
sorosoro1111

2023/02/07 07:32

確かにそうでした。質問の主題を編集します。 ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問