2013-02-09 9 views
13

Próbuję dodać kilka błędów w formularzach, ale mój kod się nie kompiluje.
Szczególnie wydaje się, że oficjalna gra 2 api nie jest poprawna.
widzimy, że błędy() zwraca listę validationError
http://www.playframework.com/documentation/api/2.0/java/play/data/Form.Field.html#errors()Jak ręcznie dodawać błędy w formularzach w strukturze play 2

każdym razie jeśli próbuję

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

mam błąd, że metoda add nie istnieją.
odkryłem, że jest to HashMap ale kod obserwacji nie kompilacji:

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

Jak dodać błędy ?? Dzięki

edit: rozwiązany dzięki 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

API-doc ty dzielone jest na polu, a nie formą. Powinieneś spróbować czegoś takiego: 'myForm.field (myField) .errors.put (" ... ")' –

Odpowiedz

11

Krótka metoda jest

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

return badRequest(loginForm.render(filledForm));

+0

Po prostu FYI, 'Form.reject' działa w Play java: https://www.playframework.com/ dokumentacja/2.3.8/api/java/play/data/Form.html # reject% 28java.lang.String,% 20java.lang.String% 29 – null

11

Można użyć withError:

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

Możesz dodać błąd globalny zbyt:

filledForm.withGlobalError("eneric error") 

Od źródła: https://github.com/playframework/playframework/blob/3bebfa7c1226a438a687ec9a0a3e5c23e5aefa09/framework/src/play/src/main/scala/play/api/data/Form.scala#L252

+1

Po prostu FYI, 'Form.withError' działa w Play Scala: https: //www.playframework.com/documentation/2.3.8/api/scala/index.html#play.api.data.Form – null

Powiązane problemy