2017-06-05 4 views
0

Ich bin neu im Play! Ich versuche also, eine sehr einfache Postanforderung zu erstellen, bei der Daten, die ein Benutzer in ein Formular eingibt, abgerufen werden. Wenn ich jedoch das Objekt aus dem Formular ziehe, sind alle seine Felder null. Beispielsweise. Hier ist eine grundlegende Klasse, die ich geschrieben habe, genannt Benutzer.Play Framework bindFromRequest() -Methode gibt Objekte mit Null-Parametern zurück

public class User{ 

public String email; 
public String password; 

} 

Einfach. Hier ist meine neue Benutzerklasse im Controller.

public Result new_user() { 
    User user = Form.form(User.class).bindFromRequest().get(); 

    System.out.println("Username: " + user.email); 
    System.out.println("Password: " + user.password); 

    return ok("This worked."); 
    } 

Meine Routen-Datei:

GET /     controllers.HomeController.start 
POST /accounts/login  controllers.HomeController.new_user() 

Und schließlich das HTML-Formular:

 <form action = "@routes.HomeController.new_user()" method = "post"> 
     <input type="text" name="firstname"> 
     <input type="text" name="lastname"> 
     <button>Add Person</button> 
     </form> 

Ich weiß, dass dies nicht zu einer Datenbank nicht speichern, aber ich sehe nicht wirklich die versuchen Sie es, wenn ich nicht einmal auf die Konsole drucken kann. Im Wesentlichen wird die Konsole "Null" und "Null" drucken, unabhängig davon, was ich eingeben. Ich weiß, dass es in der Tat das Objekt erstellt, als Drucker Benutzer wird etwas wie anzeigen:

[email protected] 

Aber die Felder sind nicht festgelegt! Was kann ich tun, damit das funktioniert?

Edit: Ich sollte erwähnen, dass ich überprüft, ob das Formular irgendwelche Fehler hatte, es kam falsch zurück.

Antwort

0

Befestigen Sie den Code in dem HTML-Code:

 <input type="text" name="email"> 
    <input type="text" name="password"> 
+0

Danke! Ich habe es vor ein paar Tagen herausgefunden, aber das ist in der Tat die richtige Lösung. – ajax992

Verwandte Themen