Die akzeptiert Antwort von Diego D sieht korrekt aus. Dieser Code scheint aus diesem sehr kurzen (3 Minuten) aber sehr hilfreichen Video zu stammen, das von der Firma Vaadin veröffentlicht wurde, Geben Sie eine sichere Validierung ein Vorher und Nachher Konverter . Zeigt den neuen Vaadin 8-Ansatz für die Validierung. Ich füge einige Notizen hinzu, zeige erweiterte Syntax und gebe vollständigen Beispielcode für eine voll funktionsfähige App.
Ein großer Unterschied in Vaadin 8 besteht darin, dass Validatoren die Verwendung von a erfordern Ordner . In den alten Tagen hast du einem Feld einen Validator angehängt, aber jetzt in Vaadin 8 befestigst du einen Validator nur an einen Ordner. Das Vaadin-Team erkennt an, dass sich diese Anforderung eines Binders für einige einfache Situationen als störend erweisen kann, aber in den meisten Fällen erwarten sie, dass Situationen, die eine Validierung erfordern, wahrscheinlich auch bindend sind. Ein sehr logisches Überdenken, glaube ich. In einem anderen Vaadin-Unternehmensvideo Webinar: Was gibt es Neues in Vaadin 8? . .
Wir definieren zwei verschiedene Validatoren, einen, der aufgerufen wird, bevor ein Konverter den Dateneintrag des Benutzers konvertiert, und einen anderen, der nach der Konvertierung aufgerufen wird. Daher ist die Reihenfolge der Methodenaufrufe withValidator
und withConverter
im fließenden Stil der Schlüssel, um hier das Verhalten zu korrigieren. Natürlich sind beforeConversion
und afterConversion
schlechte Namen für Validator-Objekte, werden aber gemacht, um die Absicht zu verdeutlichen, vor oder nach dem Konverter in dieser Demo zu laufen.
Ein Validator verwendet einen herkömmlichen Java-Code-Stil, der eine Methode überschreibt. Der andere Validator verwendet die Lambda-Syntax. Sehen Sie sich das Video an und sehen Sie sich die Diego D-Antwort für Code an, der mit einzeiligen Lambda-Argumenten weiter vereinfacht wird.
%Vor%Was ist, wenn Sie kein Bindemittel haben, weil Sie ein dynamisches Formular erstellt haben?
Vaadin 8.1 unterstützt das Entfernen des Binders für ein Feld, das dynamische Formen unterstützt. Wenn Sie ein Feld unsichtbar machen, entfernen Sie den Ordner für dieses Feld. Fügen Sie den Ordner erneut hinzu, wenn Sie das Feld sichtbar machen.