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.
Danke! Ich habe es vor ein paar Tagen herausgefunden, aber das ist in der Tat die richtige Lösung. – ajax992