2017-06-21 16 views
0

私は注釈付きスタイルのSpring MVCを使用します。私の設定クラスで私は宣言しますエンティティPOJOオブジェクトの検証

@Bean("messageSource") 
public MessageSource getMessageSource() { 
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); 
    messageSource.setBasename("classpath:messages"); 
    messageSource.setDefaultEncoding("UTF-8"); 
    return messageSource; 
} 

messages.propertiesの 'src/main/resources'フォルダがあります。私は今のところ実行したい validatationは次のとおりです。

プロパティファイルの
@Entity 
@Table(name = "contract") 
public class Contracts { 
     @NotNull 
     @Column(name = "payment_amount") 
     private Integer paymentAmount; 
} 

とテキスト:

NotNull.contracts.paymentAmount = Invalid. 
NotEmpty.contracts.paymentAmount = Invalid. 
NotBlank.contracts.paymentAmount = Invalid. 
NotNull.contracts.paymentamount = Invalid. 
NotEmpty.contracts.paymentamount = Invalid. 
NotBlank.contracts.paymentamount = Invalid. 

それがすべてでは動作しません。最大の問題は、私の他のアプリケーションが同じ(多かれ少なかれ)設定で正常に動作していることです。 名前空間に問題があるかもしれないので、私はpom.xmlを追加しませんが、それは私が現在持っている唯一の容疑者だから問題が発生する可能性があります。

答えて

0

エラーメッセージが間違っている場合: @NotNullアノテーションにキーを指定していません。 プロパティファイルでキーとしてjavax.validation.constraints.NotNull.messageを1つ指定するか、キーとして使用します。

検証がまったく実行されない場合:メソッドのパラメータに@Validを設定しましたか?

何か他のものがある場合は、動作していないものを指定してください。

+0

にmessageSourceを変更しました。ModelAttribute Valid ClassNameとBindingResultsをこの順番で入れました。 NotNull(メッセージ)を指定すると動作しますが、外部ファイルはSpringの設定では見逃してしまいます。 – lucaskos

0

私はそれを働かせました。彼らは春で見られているかどうかを確認するために、メッセージのテストを行うとき一種の私はそれらを得るために管理:私のテストファイル内 :

String message = messageSource.getMessage("NotNull.contracts.startDate", null, Locale.getDefault()); 
     System.out.println(message); 

私が正しくメッセージが表示されました。しかし、私が私のWebアプリケーションを実行しようとすると、表示されるメッセージはクラス注釈@NotNull(message = "")にハードコードされています。テストを行うためのBTW私はResourceBundleMessageSource

関連する問題