簡體   English   中英

在彈簧驗證器中覆蓋錯誤消息

[英]Override error message in spring validator

說我用Spring做休息服務。

假設我需要將自定義驗證器應用於整個類型/類,即@Target({ElementType.TYPE})。 Validator具有非常笨拙的邏輯,不能簡化為子驗證器或字段驗證器。

因此,有時候很難理解究竟是什么問題,我需要添加不同的錯誤消息。

我不知道怎么做。 可能嗎?

例如:

public class ReportConstraintValidator implements ConstraintValidator<ValidReport, Report> {

    @Autowired
    DesignRepository designRepository;

    @Override
    public void initialize(ValidReport constraintAnnotation) {
    }

    @Override
    public boolean isValid(Report report, ConstraintValidatorContext context) {
        ...
        // here goes "foo error message"
        return false;
        ...
        // here goes "bar error message"
        return false;
    }
}

解決了M.Denium的提議

public class ReportConstraintValidator implements ConstraintValidator<ValidReport, Report> {

@Autowired
DesignRepository designRepository;

@Override
public void initialize(ValidReport constraintAnnotation) {
}

@Override
public boolean isValid(Report report, ConstraintValidatorContext context) {
    ...
    context.buildConstraintViolationWithTemplate("foo error message").addConstraintViolation();
    return false;
    ...
    context.buildConstraintViolationWithTemplate("foo error message").addConstraintViolation();
    return false;
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM