2012-08-29 2 views
0

나는 제출이표시하는 방법 폼 유효성 검사 오류

index.scala "유효"하지 않을 때 "잘못된 사용자 이름 또는 암호"를 반환 함수의 validate() 내 모델에서 오류 메시지를 표시하는 방법을 생각해 본다. HTML

@(myForm: Form[models.profile.MUser]) 

@import helper._ 
@import helper.twitterBootstrap._ 

@main("welcome") { 

    <h1>Login with your account</h1> 

@helper.form(action = routes.Application.loginAccount()) { 

    @helper.inputText(myForm("username"),'_showConstraints -> false) 
    @helper.inputPassword(myForm("password"),'_showConstraints -> false) 

    <input type="submit" value="Login"> 
}} 

Application.java

public static Result loginAccount() { 
     Form<MUser> filledform = loginForm.bindFromRequest(); 
     if (filledform.hasErrors()) { 
      Logger.debug("unsuccessfull loggin"); 
       return badRequest(index.render(filledform)); 
     } 
     MUser user = filledform.get(); 
     SessionCache.setCache(SessionCache.Constants.LOGGED_IN_USER, 
       UserController.findUserByUserName(user.username)); 
     return redirect("/home"); 

    } 

MUser.java 패키지 models.profile;

import controllers.services.UserController; 
import models.entities.UserDTO; 
import play.data.validation.Constraints.*; 
import scala.Serializable; 

/** 
* @author fbranchetti 
* 
*/ 
public class MUser implements Serializable{ 

    @Required 
    public String username; 
    @Required 
    public String password; 


    public String validate() { 
     if (authenticate(username, password)) { 
      return "Invalid username or password"; 
     } 
     return null; 
    } 


    private boolean authenticate(String username, String password) { 
     UserDTO fUser = new UserDTO(); 
     fUser.setPassword(password); 
     fUser.setUsername(username); 

     return !UserController.logginUser(fUser); 
    } 

} 

답변

1

인증 결과를 플래시 변수에 저장할 수 있습니다. 보기에서 변수의 존재를 확인하고 표시 할 수 있습니다.