Rufen Sie die Bean -Validierung auf
-
26-10-2019 - |
Frage
Ich verwende JSF 2, MyFaces, Hibernate-Validator-4.1.0.Final.jar.
Ich verwende den Hibernate-Validator zur Validierung von in Form eingegebenen Werten.
public class Client {
@Persistent
@Pattern(regexp = "|.+@.+\\.[a-z]+", message = "Email format is invalid.")
private String email;
//getter
}
Ich entwickle das Modul des Bulk-Upload-Moduls, bei dem ich CSV-Daten analysiere und Datenbankdatensätze erstelle.
...
try{
Client cl=new Client();
cl.setEmail("from_csv_data");
}catch( //validation failed
Wie verwende ich hier denselben Validator?
Set> ConstraintViolations = validator.Validate (NC);
wirft diese Ausnahme aus
SEVERE: Received 'java.lang.NoSuchMethodError' when invoking action listener '#{clientBean.bulkUpload}' for component 'j_idt86'
28. Januar 2011 8:35:39 Uhr javax.faces.event.MethodexpressionActionListener ProcessAction
Schwerwiegend: java.lang.nosuchmeThoderror: javax.persistence.persistence.getPersistencutil () ljavax/Persistenz/Persistenzutil; bei org.hibernate.validator.engine.resolver.jpatraversableresolver.isreactable (jpatraversableresolver.java:62)
Ich habe diese Lösung ausprobiert Verknüpfung
Ich habe Hibernate-jpa-2.0-api-1.0.0.final.jar, Hibernate-Validator-4.1.0.final.jar
Benötige ich ein anderes Glas, um diese Arbeit zu machen?
Lösung
Sie können den Validator manuell mit so etwas wie folgt aufrufen:
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Client client = new Client();
Set<ConstraintViolation<Client>> constraintViolations = validator.validate(client);
Andere Tipps
Sie haben höchstwahrscheinlich eine weitere unvollständige JPA 2 -JAR -Datei auf dem Klassenpfad. Leider wurden einige unvollständige Versionen dieses Glases irgendwann veröffentlicht (zum Beispiel TopLink). Überprüfen Sie Ihren Klassenpfad für jedes Glas, das JPA -Kurse enthält. Siehe auch https://forum.hibernate.org/viewtopic.php?f=9&t=999855