Hallo,
ich versuche das Thema rund um die javax.validation zu verstehen und habe ein erstes kleines Beispiel geschrieben - welches allerdings nicht funktioniert, d.h. die Validierung findet nicht statt.
Mein Ziel ist es, einen Long-Wert auf einen Minimalwert hin zu prüfen. Folgende Klassen habe ich bisher:
Die Annotation:
Die Validierungsklasse
Die Klasse, in der die Validierung genutzt werden soll:
Und eine Main:
Wie schon erwähnt, ist das Thema für mich komplett neu. Kann jemand helfen?
Vielen Dank im Voraus.
VG Torsten
ich versuche das Thema rund um die javax.validation zu verstehen und habe ein erstes kleines Beispiel geschrieben - welches allerdings nicht funktioniert, d.h. die Validierung findet nicht statt.
Mein Ziel ist es, einen Long-Wert auf einen Minimalwert hin zu prüfen. Folgende Klassen habe ich bisher:
Die Annotation:
Java:
package snippets.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
@Constraint(validatedBy = snippets.validators.MinValue.class)
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MinValue {
String message() default "Please check min value";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
Die Validierungsklasse
Code:
package snippets.validators;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class MinValue implements ConstraintValidator<snippets.annotations.MinValue, Long> {
public boolean isValid(Long value, ConstraintValidatorContext context) {
if (value == null) {
return false;
}
if (value.longValue() >= 10) {
return true;
}
return false;
}
}
Die Klasse, in der die Validierung genutzt werden soll:
Code:
package snippets;
import snippets.annotations.MinValue;
public class Value {
@MinValue
private Long value;
public Value(long value) {
this.value = Long.valueOf(value);
}
public long getValue() {
return this.value;
}
}
Und eine Main:
Code:
package snippets;
public class Main {
public static void main(String[] args) {
var value = new Value(314L);
System.out.println(value.getValue());
}
}
Wie schon erwähnt, ist das Thema für mich komplett neu. Kann jemand helfen?
Vielen Dank im Voraus.
VG Torsten