2015-11-06 4 views
0

Я пытаюсь заполнить свою пользовательскую форму в Java Play! 2.4.3, но я всегда получаю "IllegalStateException: Нет значения"Play Framework Java - Ошибка проверки формы

Это код от контроллера:

Form<User> uf = Form.form(User.class); 

uf.fill(new User("[email protected]" , "123")); 

if (uf.hasErrors()){ 
    return ok("Form Error"); 
} 

// IllegalStateException: No value 
uf.get(); 

User.class:

@Constraints.Required 
private String email; 
@Constraints.Required 
private String password; 

public User(){} 

public User(String email, String password) { 
    this.email = email; 
    this.password = password; 
} 

//Getter 
public String getEmail() { 
    return email; 
} 

public String getPassword() { 
    return password; 
} 

//Setter 
public void setEmail(String email) { 
    this.email = email; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

Я также попытался заполнить Форма с методом связывания и HashMap, но получить ту же ошибку

Form<User> uf = Form.form(User.class);  

Map<String,String> data = new HashMap(); 
data.put("email", "[email protected]"); 
data.put("password", "123"); 

User user = uf.bind(data); 

if (uf.hasErrors()){ 
    return ok("Form Error"); 
} 

// IllegalStateException: No value 
uf.get(); 

ответ

0

.fill возвращает новый объект Form (see here). Так что я верю, что это должно работать (не испытали):

Form<User> uf = Form.form(User.class); 

Form<User> newUf = uf.fill(new User("[email protected]" , "123")); 

if (newUf.hasErrors()){ 
    return ok("Form Error"); 
} 

// Should Work 
newu=Uf.get(); 

И, кажется, эта история также одинакова для .bind (as seen here).

Смежные вопросы