2016-05-24 15 views
1

Sagen Sie, ich mache einen Ruheservice mit Spring.Fehlermeldung im Spring Validator überschreiben

Angenommen, ich brauche einen benutzerdefinierten Validator, der auf den gesamten Typ/die ganze Klasse angewendet wird, z. B. @Target ({ElementType.TYPE}). Der Validator hat eine ziemlich unbeholfene Logik, die nicht auf Subvalidatoren oder Feldvalidatoren reduziert werden kann.

Also manchmal ist es ziemlich schwierig zu verstehen, was genau falsch ist und ich muss verschiedene Fehlermeldungen hinzufügen.

Ich kann nicht wie das geht. Ist es möglich?

Zum Beispiel wie:

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; 
    } 
} 
+1

Verwenden einer Feder 'Validator' anstelle eines' javax.validation' eine oder die Dokumentation der Kasse [ 'ConstraintValidatorContext '] (http://docs.oracle.com/javaee/6/api/javax/validation/ConstraintValidatorContext.html#buildConstraintViolationWithTemplate (java.lang.String)). –

+0

@ M.Deinum Das ist genau das, wonach ich gesucht habe! Vielen Dank! – corvax

Antwort

0

gelöst M.Denium

vorgeschlagen
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; 
} 
} 
Verwandte Themen