JSR-303永远不会显示默认消息

时间:2015-11-03 11:37:51

标签: spring-mvc bean-validation

我有JSR-303 bean验证工作,但我永远无法显示默认消息。

我创建了一个自定义验证程序DateRangeValidator,它会检查两个日期,以确保日期早于日期。它工作正常。

我的注释看起来像这样:

@Target( ElementType.FIELD)
@Retention( RetentionPolicy.RUNTIME)
@Constraint(validatedBy = DateRangeValidator.class)
public @interface ValidDateRange {
    String message() default "{ValidDateRange.message}";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}

messages.properties我有以下内容:

ValidDateRange.message=From date must be before to date.

但只要验证失败,我在网页上看到的就是:

  

{ValidDateRange.message}

我在这里缺少什么?我的默认消息在哪里?

我可以显示消息的唯一方法是将以下内容添加到messages.properties(没有大括号):

ValidDateRange.{myFormName}.{myRangeField}=blah blah blah

为什么默认消息永远不会显示?我不想为我使用此验证的每个字段指定消息。

1 个答案:

答案 0 :(得分:2)

  

ValidationMessages资源包通常是属性文件,   ValidationMessages.properties,在默认包中   应用