Wie erfolgt die clientseitige Validierung mit annotierten Regeln für Domain-Klassen (RequestFactory)?

8

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%     
André Salvati 11.05.2012, 18:10
quelle

2 Antworten

4

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.

    
André Salvati 14.05.2012, 19:47
quelle
4

Eine (temporäre) Lösung gefunden, um die Validierungsannotationen auf dem Client und auf dem Server mit RequestFactory:

zu verwenden

Fü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.

Beispiel

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:

%Vor%

User ist die Domänenklasse auf dem Server:

%Vor%

Und schließlich die UserProxy für den Client:

%Vor%

Gruppen

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%

Hoffnung für die Zukunft

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.

    
Marco Jakob 18.05.2012 21:14
quelle