Feld name, wenn Sie javax.die Validierung.ConstraintViolationException geworfen wird
Wenn die PathVariable 'name' doesn ' T pass-Validierung eine javax.die Validierung.ConstraintViolationException geworfen wird. Gibt es eine Möglichkeit zum abrufen der parameter name in der geworfen javax.die Validierung.ConstraintViolationException?
@RestController
@Validated
public class HelloController {
@RequestMapping("/hi/{name}")
public String sayHi(@Size(max = 10, min = 3, message = "name should have between 3 and 10 characters") @PathVariable("name") String name) {
return "Hi " + name;
}
- Hat man diese Arbeit aus?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den folgenden Exception-Handler zeigt, wie es funktioniert :
Können Sie den Zugriff auf die Ungültiger Wert (Namen) mit
Können Sie den Zugriff auf die Eigenschaft 'name' mit
getInvalidValue()
nicht zurück, wird der name des Elements. Es gibt den Wert des Elements.verwenden Sie diese Methode, (ex ConstraintViolationException Instanz):
Ich hatte das gleiche problem aber habe auch "sayHi.arg0" von getPropertyPath. Ich wählte zum hinzufügen einer Nachricht zu NotNull Anmerkungen, da waren Sie Teil der öffentlichen API. Wie:
erhalten Sie die Nachricht durch Aufruf
Wenn Sie überprüfen den Rückgabewert
getPropertyPath()
, Sie finden es ' aIterable<Node>
und das Letzte element iterator ist der name des Feldes. Der folgende code funktioniert für mich: