【问题标题】:How to create custom Error messages for method parameters in Hibernate Validator如何在 Hibernate Validator 中为方法参数创建自定义错误消息
【发布时间】:2016-10-17 22:46:58
【问题描述】:

我使用的是休眠验证器 5.3.0。

以下是我的带有@NotNull 约束的函数,我在其中对方法参数进行验证。

public void test(@NotNull String firstName, @NotNull String lastName) {

    ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
    Validator validator = factory.getValidator();
    ....
}

阅读this 问题后,我发现可以使用以下格式将自定义错误消息放入 ValidationMessages.properties 文件中:

[ConstraintName].[ClassName].[FieldName]=[Message] 

例如

NotNull.TestClass.name=My Custom Message

但是当您尝试验证某些类字段时,这很有效。

那么是否可以使用这种格式或其他格式并为方法参数创建自定义错误消息?

提前致谢。

【问题讨论】:

    标签: java hibernate-validator


    【解决方案1】:

    你看过消息注释参数吗? 如果您想使用它,您可以提供自己的自定义消息,例如:

    public void test(@NotNull(message = "My custom message for first name") String firstName, @NotNull String lastName) {
    
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
        Validator validator = factory.getValidator();
        ....
    }
    

    或者,如果您需要多次重复使用相同的消息,您可以将其添加到 ValidationMessages.properties,如您在问题中所说,稍后在代码中执行以下操作:

    public void test(@NotNull(message = "{my.custom.message.key}") String firstName, @NotNull String lastName) {
    
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
        Validator validator = factory.getValidator();
        ....
    }
    

    在您的 ValidationMessages.properties 中,您将拥有:

    my.custom.message.key=My custom message goes here
    

    您可以在这里找到所需的一切 - spec

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 2014-04-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      相关资源
      最近更新 更多