2017-05-19 15 views
0

フィールドがあり、doubleが必要です。Spring Mvc - typeMismatchのカスタム検証メッセージ

Failed to convert property value of type java.lang.String to required type java.lang.Double for property price; nested exception is java.lang.NumberFormatException: For input string: "fsd" 

値が入力されていないときのためにカスタムメッセージ:あなたはStringを入力した場合、デフォルトのメッセージは次のようなものです。このメッセージを次のように設定しました:

@NotNull(message = "price is required") 
private Double price; 

タイプの不一致に対応する注釈はありますか?

答えて

3

簡単な方法はありません。事実、検証は適用できません。検証はPOJOの初期化に適用されます。あなたの場合、POJOを作成することはできません.Doubleを初期化する有効な値はありません。

私のプロジェクトの回避策として、すべてのPOJOフィールドの文字列を作成して検証します。また、文字列値をDouble/Boolean/Dateなどに変換するメソッドも用意されていました。

+0

これは意味があります。ありがとう! – user2892437

-1

型の不一致に対する検証注釈はありません。これは、データバインディング時に発生するためです。フィールドのデータバインディングに失敗した場合、検証は行われません。しかし、エラーリストに表示されるメッセージを変更する場合は、プロジェクトのリソースバンドルにあるmessages.propertiesファイルを使用してメッセージを変更できます。詳細については、を参照してくださいthis question

typeMismatch.org.joda.time.LocalDate=Dates must be entered in the format MM/DD/YYYY 

:私はジョダ時の日付フィールドのために私の作品の私のメッセージファイルで次のキーを使用します。

+0

誰かがdownvoteを説明することができたら私は私の応答を削除してうれしいです。 –

関連する問題