Играй! форма механизма шаблонов фреймворка, как отображать пользовательские сообщения об ошибках

#scala #playframework-2.0

#scala #playframework-2.0

Вопрос:

Я использую play! фреймворк с scala для развертывания веб-приложения. Я хотел бы открыть всплывающее сообщение, когда пользователь не может войти в систему.

Это мой код шаблона scala:

 @form(routes.Application.login) {
            <div class="emailaddress">E-mail address:</div>
            <div class="inputbox">
                @helper.input(userForm("email"), '_id -> "email", '_label->"" ) { (id, name, value, args) => 
                            <input placeholder="Insert email" type="text" class="email-input" id="@id" name="@name" value="" @toHtmlArgs(args)>
                        }

            </div>
            <div class="password">Password:</div>
            <div class="inputbox1">
                @helper.input(userForm("password"), '_id -> "password", '_label->"") { (id, name, value, args) => 
                            <input placeholder="Insert password" class="password-input" type="password" id="@id" name="@name" value="" @toHtmlArgs(args)>
                        }
            </div>
            <div >
                <button id="submit-button" class="myButton" >Submit</button>
            </div>
            @if(userForm.hasGlobalErrors) { 
                    <div class="alert alert-error">
                        <a class="close" data-dismiss="alert">×</a>
          function to javascriptPopUp(@userForm.globalError.get.message);
                    </div>
            }
        }
  

и мой код контроллера :

 def login = Action { implicit request => 
    userForm.bindFromRequest.fold(
        errors=> BadRequest(views.html.user.userLogin(UserDB.findAll, errors)),
        user => {
                val use = UserDB.findUserByLogin(user.email, user.password)
                if(use!=None){
                    Redirect(routes.DataManagementController.projects).withSession(Security.username -> user.email).flashing("success" -> "You've been logged in")
                }else{
                    Ok(views.html.user.userLogin(UserDB.findAll, userForm))
                }

        }
    ) 
}
  

Но даже с ошибкой он никогда не попадает в мою функцию javascript.
Кто-нибудь может объяснить мне, почему я никогда не вхожу?

(если вам нужно больше кода, спросите, и я опубликую его, я просто экономлю место на этой странице, потому что логин работает, я не могу просто показывать ошибки сообщений).

Комментарии:

1. Что такое UserDB.findAll? Это та форма, которую вы передаете в представление входа?

2. Также можете ли вы опубликовать код формы в контроллере, где вы выполняете проверку?

3. Если вы вставляете следующее на свою страницу, возвращаете ли вы ошибки проверки? @if(userForm.hasErrors) { <div class="alert alert-error"> @if(userForm.errors.size() > 0) { @for((key, value) <- userForm.errors) { @key.toString() : @for(err <- value) { @err.message() } } } else {No error returned.} </div> }