2016-07-12 15 views
0

Ich versuche, Login-Funktionalität für eine Website im Play-Framework zu erstellen. Wenn die Anmeldeinformationen eines vorhandenen Benutzers in die HTML-Ansicht eingegeben werden und die Schaltfläche zum Senden (Anmelden) angeklickt wird, führt die Anmeldeseite zu nichts.Ich kann mich nicht anmelden, um mit scala mit Play Framework zu arbeiten

LoginController:

class LoginController @Inject() extends Controller { 

    def login(Email:String, password:String): Boolean = { 
     val user = CustomerLogin.findCustomer(Email).get 
     var status:Boolean = false 
     if(user.password == password) { 
     //log the user in 
     status = true 
     } else { 
     status = false 
     } 
     status 
    } 


    def index = Action { 
    implicit request => 
     Ok(views.html.loginOurs(LoginForm)) 
    } 


    private val LoginForm: Form[CustomerLogin] = Form(mapping(
    "Email" -> nonEmptyText, 
    "password" -> nonEmptyText)(CustomerLogin.apply)(CustomerLogin.unapply)) 


    def save = Action { 
    implicit request => 
     val newLoginForm = LoginForm.bindFromRequest() 
     newLoginForm.fold(hasErrors = { 
     form => 
      Redirect(routes.LoginController.index()).flashing(Flash(form.data) + 
      ("error" -> Messages("validation.errors"))) 
     }, success = { 
     newLogin => 
      Redirect(routes.HomeController.home()).flashing("success" -> Messages("customers.new.success", newLogin.Email))} 
    ) 
    } 


    def newLogin = Action { 
    implicit request => 
     val form = if(request2flash.get("error").isDefined) 
     LoginForm.bind(request2flash.data) 
     else 
     LoginForm 
     Ok(views.html.loginOurs(form)) 
    } 


} 

loginOurs.scala.html (einige)

<div id="content"> 

    @main(Messages("login.form")) { 
    <h2>@Messages("login form")</h2> 
    @helper.form(action = routes.LoginController.save) { 
    <fieldset> 
     <legend> 
      @Messages("customer.details", Messages("customer.new")) 
     </legend> 
     @helper.inputText(LoginForm("Email")) 
     @helper.inputText(LoginForm("Password")) 
    </fieldset> 
    <p> 
     <input type="submit" class="btn-primary" value='@Messages("submit")'> 
    </p> 
    } 
    } 
</div> 

Routes (Anmelden Sachen nur)

GET  /login     controllers.LoginController.newLogin 

POST /login     controllers.LoginController.save 

GET /login/:Email    controllers.LoginController.login3(Email:String) 

GET  /login      controllers.HomeController.confirm(Email:String) 

Jede gegebene Hilfe würde sehr geschätzt werden.

Vielen Dank Jackie

Antwort

1

der Kappen von E-Mail und Passwort Seien Sie vorsichtig, ich denke, eine Nichtübereinstimmung in

@helper.inputText(LoginForm("Email")) 
@helper.inputText(LoginForm("Password")) 

dort und

private val LoginForm: Form[CustomerLogin] = Form(mapping(
    "Email" -> nonEmptyText, 
    "password" -> nonEmptyText)(CustomerLogin.apply)(CustomerLogin.unapply)) 
+0

Ja, das funktioniert, danke sehr viel Louis F. –