0

我有一个Java项目,并在其中使用自定义的Hibernate验证器。根据Hibernate Docs,自定义错误消息应该在ValidateMessages.properties中定义为键值,并且该文件必须在“classpath”目录中创建。 我的问题是,类路径在“目标”目录下,并且在清理构建项目后它将被删除,因此创建的.properties文件将消失。如何解决?Hibernate验证器:自定义的按钮

`@Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE}) 
@Retention(RUNTIME) 
@Constraint(validatedBy = NCValidator.class) 
@Documented 
public @interface NC { 

String message() default "{msg}"; 

Class<?>[] groups() default {}; 

Class<? extends Payload>[] payload() default {};} 

///////////////////////////////

 ` public class NCValidator implements 
     ConstraintValidator<NC, String> { 

    @Override 
    public void initialize(NC constraintAnnotation) { 
    ConstraintValidator.super.initialize(constraintAnnotation); 
     } 

    @Override 
    public boolean isValid(String string, ConstraintValidatorContext 
    context) { 
    ... 
    ... 
    } 

    }` 

,并使用该自定义验证在这样的类:

`@ValidateNC 
    default public String getNC() { 
    return (String) get("nC"); 
    } 
` 
+1

把它放在'src/main/resources' – Ramanlfc

+0

我把它放在资源下但它没有工作。我应该如何指向这个目录? @Ramanlfc – HoseinPanahi

回答

1

把你.properties文件的resources文件夹下或任何在您的系统,并指向它。

+0

i'v添加自定义验证码的问题。但我不明白如何指向新的文件地址。请解释 – HoseinPanahi

+0

你能分享你的项目结构吗? –

+0

你是什么意思关于结构?我定义了一个自定义验证器和一个注释,并在类中使用该注释来获取bean的属性。然后,我在目标/类中创建了“ValidateMessages.properties”,并在其中定义了键值。它的工作原理,但清理后的目标将消失。 @ Samuel.F – HoseinPanahi