2017-09-07 2 views
1

Meine BindingResult erhält nicht die Fehler, aber sie erscheinen auf der Stack-Trace.Spring-Boot BindingResult keine Fehler

haben Meine Verkäufe einen RegexMuster für salesno:

@Entity 
public class Sale { 

public Sale() { 
} 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long id; 
@NotEmpty 
@Pattern(regexp = "^S\\d{9}$", message = "Sales number must be in the format S123456789") 
private String salesno; 

Der DTO den HTML-Code für Anwendungen sichern SalesViewDTO

public class SaleViewModel { 

private Sale sale = new Sale(); 

und die Steuerung:

@PostMapping("newSale") 
public String saleSubmit(@Valid @ModelAttribute("SaleViewModel") SaleViewModel saleViewModel, BindingResult result) { 
    if (result.hasErrors()) { 
     List<ObjectError> errors = result.getAllErrors(); 
     for(ObjectError error : errors) { 
      System.out.println("This is the error: " +error); 
     } 
     return "sale"; 
    } else { 
     // Other stuff 

Wenn ich dann versuchen, Um das Formular zu senden, bekomme ich die Nachricht auf der Konsole:

ConstraintViolationImpl{interpolatedMessage='Sales number must be in the format S123456789', propertyPath=salesno, rootBeanClass=class com.gmbh.domain.Sale, messageTemplate='Sale number must be in the format S123456789'} 

Ich möchte wissen, warum das Bindungsergebnis Ergebnis leer ist?

Antwort

2

hinzufügen @Valid zum Verkauf innere Aufgabe der verschachtelten Objekten zu validieren sowie SaleViewModel

public class SaleViewModel { 
    @Valid 
    private Sale sale = new Sale(); 

notwendig es ist.

+0

perfekt - danke! –

+0

Wenn es zu lang ist, werde ich eine andere Frage stellen, aber wie bekomme ich @UniqueConstraint-Fehler in das Binding-Ergebnis wie: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Eintrag '123456789' duplizieren –

+0

Es ist nicht Teil der Validierungslogik. Normalerweise wird eine benutzerdefinierte Anmerkung eingeführt, z. @UserNotExists, wo die gesamte Logik überprüft wird http://dolszewski.com/spring/custom-validation-annotation-in-spring/ – StanislavL

Verwandte Themen