2014-12-26 5 views
0

양식을 제출하면 playframework가 유효성 검사를 실행하지만 pojo 클래스에서 유효성 검사를 위해 Annotations을 정의하지 않았습니다. 유효성 검사는 두 필드에서만 실행됩니다. 아래 내 코드 :Playframework 2.2 : 유효성 검사가 추가되었습니다. 유효성 검사가 추가되지 않습니다.

POJO 클래스 :

public class User { 
public int id; 
public String name; 
public int age; 

public User() {} 

public User(int id, String name, int age){ 
    this.id = id; 
    this.name = name; 
    this.age = age; 
} 

@Override 
public String toString() { 
    return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; 
} 
} 

내 컨트롤러 방법 :

public Result saveUser() { 
    Form<User> userData = userForm.bindFromRequest(); 
    if(userData.hasErrors()){ 
     flash("error", "Please enter valid values"); 
     return badRequest(add_user.render(userData)); 
    } 
    User user = userData.get(); 
    boolean result = userService.addNewUser(user); 
    if(result){ 
     flash("success", String.format("Add user success %s", user)); 
    }else{ 
     flash("error", String.format("Fail to save user, Please contact admin %s", user)); 
    } 
    return redirect(routes.UserController.newUsers()); 
} 

HTML 양식 : 내가 양식을 제출하면

@(userForm: Form[com.harmeetsingh13.entities.User]) 
@import helper._ 
@import helper.twitterBootstrap._ 

@main("New User"){ 
<h1 style="margin-left: 20px;">User Form</h1> 
@helper.form(action = com.harmeetsingh13.controllers.routes.UserController.saveUser(), 
     'id -> "userForm", 'style -> "margin-left: 20px;"){ 
    <fieldset> 
     <legend>User (@userForm("name").valueOr("New"))</legend> 
     @helper.inputText(userForm("id"), '_label -> "ID") 
     @helper.inputText(userForm("name"), '_label -> "Name") 
     @helper.inputText(userForm("age"), '_label -> "Age") 
    </fieldset> 
    <input type="submit" class="btn btn-primary" value="Save" /> 
} 
} 

, 내가 얻을 오류 다음 :

enter image description here

답변

-1

나는 왜 이런 일이 발생하는지 알지 못하지만, play-framework은 기본적으로 기본 유형을 사용합니다. 내 pojo User의 데이터 유형을 int에서 String으로 변경하면 유효성 검사가 자동으로 실행되지 않습니다. 아직도 나는 play-framework에서 이러한 유형의 유효성 검사에 대해 아무 것도 발견하지 못했지만 실제로 개발자를 붙들았다.