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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

バリデーション

Validationとは特定の入力データが、求められた条件に当てまっているかをチェックするために使われます。

Spring Boot

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

Q&A

1回答

8855閲覧

バリデーションチェックができません

Rivermouth

総合スコア18

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

バリデーション

Validationとは特定の入力データが、求められた条件に当てまっているかをチェックするために使われます。

Spring Boot

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

0グッド

0クリップ

投稿2020/07/17 08:02

「Spring解体新書」というテキストを参考に、ユーザー登録画面のバリデーションチェックをしたいのですが、エラーが出てしまい、自力での解決はできなそうですので、こちらに質問させていただきます。

SignupFormクラス

Java

1package com.example.demo.login.domain.model; 2 3import java.util.Date; 4import org.springframework.format.annotation.DateTimeFormat; 5import lombok.Data; 6import javax.validation.constraints.NotBlank; 7import javax.validation.constraints.AssertFalse; 8import javax.validation.constraints.Email; 9import javax.validation.constraints.Max; 10import javax.validation.constraints.Min; 11import javax.validation.constraints.NotNull; 12import javax.validation.constraints.Pattern; 13import org.hibernate.validator.constraints.Length; 14 15@Data 16public class SignupForm { 17 @NotBlank 18 @Email 19 private String userId; 20 21 @NotBlank 22 @Length(min = 4, max = 100) 23 @Pattern(regexp = "^[a-zA-Z0-9]+$") 24 private String password; 25 26 @NotBlank 27 private String userName; 28 29 @NotNull 30 @DateTimeFormat(pattern = "yyyy/MM/dd") 31 private Date birthday; 32 33 @Min(20) 34 @Max(100) 35 private int age; 36 37 @AssertFalse 38 private boolean marriage; 39 40}

エラースタック(文字制限の都合上一部抜粋)

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Email' validating type 'java.lang.String'. Check configuration for 'userId'

at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.throwExceptionForNullValidator(ConstraintTree.java:229) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]

ちなみにテキストには載っていなかったのですが、pom.xmlの編集も必要とのことでしたので、以下のように設定し、プロジェクトの更新も行なっております。

pom

1 <dependency> 2 <groupId>javax.validation</groupId> 3 <artifactId>validation-api</artifactId> 4 <version>2.0.1.Final</version> 5 </dependency> 6 <dependency> 7 <groupId>org.hibernate</groupId> 8 <artifactId>hibernate-validator</artifactId> 9 <version>5.2.4.Final</version> 10 </dependency> 11 <dependency> 12 <groupId>org.hibernate.validator</groupId> 13 <artifactId>hibernate-validator</artifactId> 14 <version>6.1.5.Final</version> 15 </dependency> 16 <dependency> 17 <groupId>org.glassfish</groupId> 18 <artifactId>javax.el</artifactId> 19 <version>3.0.1-b09</version> 20 </dependency>

上手くvalidationをインポートできていないのでしょうか?
どこが間違っているのか、お知恵をお貸し頂きたいです。

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

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

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

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

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

A-pZ

2020/07/22 08:07

記載いただいたFormクラスだけを見たところ特に問題なくnullのときでもメールアドレスチェックが動作しました。Controller側の実装や、入力フォーム(HTML?)の実装で何らかの想定外な実装がされているのかもしれません。 他には、特に本件とは無関係ではありますが、hibernate-validator のバージョンを2つ指定しない方が良いかと思います。
guest

回答1

0

動作確認ができました!

BeanValidationとHibernete Validatorを組み合わせずにHibernete Validatorからのインポートに統一して見てください。
今回の場合は、@NotBlankや@Emailのインポートです。
詳細は以下の参照先に記載されています。

参照先
https://stackoverflow.com/questions/52608600/hv000030-no-validator-could-be-found-for-constraint-javax-validation-constrai

投稿2020/12/01 00:45

ryu-nosuke

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問