#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> }