Ich habe ein Projekt mit GWT 2.4 entwickelt und suche nach einer Möglichkeit, meine Client (Proxy) -Klassen zu validieren (JSR 303), ohne dass ich Anmerkungen aus meinen Domänenklassen (Serverseite) neu erstellen muss. Ich weiß, dass es ein Beispiel mit GWT-Amtsleitungscode (Validierung) gibt, aber es verwendet keine RequestFactory, es verwendet RPC.
Ist es möglich, Validierungen von Domänenklassen auf Client-Seite zu nehmen? Wäre es die beste Strategie, mein Domain-Modell mit Client-Code zu teilen?
Soweit ich weiß, hat das GWT-Team an dieser Funktion an 2.3 und 2.4 gearbeitet. Ist es schon fertig, oder soll ich auf GWT 2.5 warten?
Dies wurde bereits auf GWT Forum gepostet, aber es ist immer noch ohne Antwort.
Danke.
Bearbeiten: Dies wäre die Validierung auf der Client-Seite (nicht getestet) ...
%Vor%Die beste Option, die ich gefunden habe, ist warten. Das GWT-Team arbeitet noch an der Client-seitigen Validierung und es wird Ende des Sommers sein.
Kommentar von Projektmitglied ncha ... @ google.com, 10. April 2012:
"Ich habe einen Plan, um die Spezifikation diesen Sommer zu beenden."
Da diese Anwendung nicht viele Eingabedaten enthält, habe ich die Validierung nur auf dem Server durchgeführt.
Eine (temporäre) Lösung gefunden, um die Validierungsannotationen auf dem Client und auf dem Server mit RequestFactory:
zu verwendenFügen Sie die JSR 303 Annotationen in eine separate Schnittstelle ein, die sowohl von der Proxy-Schnittstelle (Client) als auch von den Domänenklassen (Server) implementiert wird. Diese Schnittstelle muss natürlich im Shared-Paket enthalten sein.
Da die Validierungsannotationen automatisch an die Vererbungshierarchie übergeben werden, sollte die Validierung nun sowohl auf dem Client als auch auf dem Server funktionieren.
Hier ist ein Beispiel für ein Objekt, das verwendet wird, wenn ein Benutzer versucht, sich zu registrieren:
UserProxyValid
ist die allgemeine Schnittstelle, die die JSR 303-Validierungsannotationen enthält:
User
ist die Domänenklasse auf dem Server:
Und schließlich die UserProxy
für den Client:
Mit Gruppen können wir sicherstellen, dass einzelne Validierungen entweder auf dem Client oder nur auf dem Server oder auf beiden durchgeführt werden. (Wie im obigen Beispiel kann die Überprüfung der Eindeutigkeit von E-Mails nur auf dem Server durchgeführt werden.)
So würden Sie ein Objekt auf dem Client validieren:
%Vor%Und hier ist die Validierung auf dem Server:
%Vor% Natürlich wäre es ohne die zusätzliche Klasse UserProxyValid
besser. Sobald Google ein Update für BeanValidation zur Verfügung stellt, können wir dies möglicherweise beheben Klassifizieren und verschieben Sie die Anmerkungen in die Domänenklasse.
Tags und Links gwt bean-validation hibernate-validator requestfactory