2016-04-14 8 views
0

Ich habe versucht, meine Ansicht mit dem Modell mithilfe von bindFromRequest() zu binden, aber Ansicht und Modell sind nicht bind, Modell gibt Nullwert.Play Framework 2.5: Modellbindungsanforderung anzeigen gibt 'null' zurück

Dies ist mein Controller

package controllers; 

import play.mvc.*; 
import play.data.Form; 
import views.html.*; 
import models.Login; 
import controllers.*; 
import com.avaje.ebean.Model; 

public class LoginController extends Controller { 

    public Result authenticate() { 
     Form<Login> loginForm = Form.form(Login.class).bindFromRequest(); 

     // password value is return null. 
     System.out.println("password :: "+loginForm.get().password); 
     if (loginForm.hasErrors()) { 
      return ok(login.render("Error in login" ,Form.form(Login.class))); 
     } else { } 
    } 
} 

Dieses Modell Login.java ist

import com.avaje.ebean.Model; 

import javax.persistence.Entity; 
import javax.persistence.Id; 

@Entity 
public class Login extends Model { 

    @Id 
    public String id; 
    public String email; 
    public String password; 

} 

Dies Einloggen Ansicht login.html:

 <form class="login-form" action="@routes.LoginController.authenticate" method="post"> 

     <h1><a href="@routes.LoginController.index" id="logo"><span> 
     <img src="@routes.Assets.at("/images/logo-main.jpg")" alt="PUAthletics" height="42" > 
     <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("/images/logo-main.jpg")"/></span></a></h1> 
     <p class="loginMessage "> 
     @message 
     </p> 
     <input type="email" name="email" placeholder="Email" value="@form("email").value" /> 
     <input type="password" name="password" placeholder="Password"/> 
     <button type="submit" class="submit-upld">Login</button> 
    </form> 
+0

Können Sie die "Login" -Modellklasse – Anton

+0

und auch die Ansicht bitte teilen –

Antwort

0

Im Sie NPE hier bekam erraten:

System.out.println("password :: "+loginForm.get().password); 

Wenn ja, das ist, weil Form Fehler hat. Sie sollten zuerst überprüfen, ob Ihr Formular gültig ist:

if (loginForm.hasErrors()) 

und dann rufen Sie Ihr Modell ab. Stellen Sie sich ein Szenario vor, bei dem ein ungültiger Datentyp in Ihr Formular übernommen wird. In diesem Fall kann Play Ihr Modell nicht erstellen.