2016-05-15 15 views
0

Ich checke das Spiel aus! Framework, mit Java (will nicht ein neues Framework lernen und eine neue Sprache zur gleichen Zeit - ich werde Scala integrieren, wie ich das lernen), und bis jetzt ist es fantastisch.Play Framework Forms (Java)

Ich habe ein bisschen Schwierigkeiten mit Formen obwohl. Ich bin immer noch auf den ersten Teil stecken here und, soweit ich verstehe, muss ich irgendwie eine Instanz von FormFactory oder etwas ähnliches, aber ich habe keine Ahnung, in welchem ​​Paket könnte es sein, oder ob formFactory ist auch eine andere magische Methode (wie ok).

Alle Zeiger würden geschätzt werden!

EDIT Hier ist mein Code:

package controllers; 

import com.google.inject.Inject; 
import play.data.FormFactory; 

import play.api.data.Form; 
import play.mvc.*; 

public class User extends Controller { 
    @Inject 
    FormFactory form; 
    final static Form<model.User> userForm = form(model.User.class); 

    public Result post() { 
     model.User user = userForm.bindFromRequest().get(); 
     return ok("The form was received!: " + user); 
    } 
} 

Das play.data Paket Ausgang nicht für mich. Vielleicht habe ich eine falsche Installation gemacht? Um klar zu sein, habe ich dieses Projekt von IntelliJ gestartet

+0

Von der Seite, die Sie verlinkt haben, kopiert: 'Um eine Klasse zu umhüllen, müssen Sie eine play.data.FormFactory in Ihren Controller injizieren, die Ihnen dann erlaubt, das Formular zu erstellen' –

+0

@ Łukasz yeah Ich sah das; Problem versucht zu injizieren, dass die Klasse eine Ausnahme auslöst. Anscheinend existiert diese Klasse nicht. Ich werde meine Frage mit etwas mehr Details aktualisieren. – iLikeBreakfast

+1

Zum einen denke ich, dass Ihre Form nicht statisch sein sollte. Laut der Dokumentation sollte Ihr Aufruf mehr wie 'userForm = form.form (model.User.class)' sein, da 'form' die Methode von' FormFactory' ist. Aber über das fehlende Paket weiß ich nicht. Versuchen Sie vielleicht Ihr Projekt von activator zu erstellen? Vielleicht hast du eine falsche Version des Spiels. –

Antwort

2

Ein Problem ist, dass Ihr Formular nicht statisch sein sollte, da es keine Möglichkeit gibt, es zu initialisieren, bevor FormFactory injiziert wird.

Nach docs dieser Aufruf

Form<model.User> userForm = form(model.User.class); 

sollte

Form<model.User> userForm = form.form(model.User.class) 

als form ist Methode der FormFactory sein.

Wenn das Paket im Klassenpfad fehlt, wird ein Konfigurationsproblem oder eine falsche Wiedergabeversion angezeigt. Ein Arbeitsprojekt kann normalerweise durch Aktivator erhalten werden.