2013-02-09 14 views
13

hinzufügen Ich versuche, einige Fehler in Formen betritt und aber mein Code nicht kompilieren.
Expecially scheint, dass offizielle Spiel 2 api nicht korrekt ist. siehe
können wir, dass Fehler() gibt eine Liste von validationerror
http://www.playframework.com/documentation/api/2.0/java/play/data/Form.Field.html#errors()Wie manuell Fehler in Formen im Spiel 2 Rahmen

trotzdem, wenn ich versuche,

ValidationError e = new ValidationError("name", "user already exist",new ArrayList()); 
filledForm.errors().add(e); 

Ich habe einen Fehler, dass Add-Methode gibt es nicht.
entdeckte ich, dass es ein hashmap ist aber das Follow-Code nicht kompilieren:

filledForm.errors().put("name","s"); 

Wie Fehler hinzufügen ?? Dank

edit: gelöst durch Julien Lafont

ValidationError e = new ValidationError("name", "user already exist",new ArrayList()); 
ArrayList<ValidationError> errors = new ArrayList<ValidationError>(); 
errors.add(e); 
filledForm.errors().put("name",errors); 
return badRequest(loginForm.render(filledForm)); 
+2

Die API-doc Sie ist für ein Feld geteilt, kein Formular. Sie sollten so etwas versuchen: 'myForm.field (myField) .errors.put ("...")' –

Antwort

11

Die kurze Methode ist

filledForm.reject("name","user already exist");

return badRequest(loginForm.render(filledForm));

+0

Gerade FYI, 'Form.reject' arbeitet in Play java: https://www.playframework.com/ Dokumentation/2.3.8/api/java/play/data/form.html # ablehnen% 28java.lang.String,% 20java.lang.String% 29 – null

11

Sie withError verwenden können:

filledForm.withError("name", "user already exist") 

Sie können auch einen globalen Fehler hinzu:

filledForm.withGlobalError("eneric error") 

Von Quelle: https://github.com/playframework/playframework/blob/3bebfa7c1226a438a687ec9a0a3e5c23e5aefa09/framework/src/play/src/main/scala/play/api/data/Form.scala#L252

+1

Nur FYI, 'Form.withError' arbeitet im Play Scala: https: //www.playframework.com/documentation/2.3.8/api/scala/index.html#play.api.data.Form – null