2013-08-08 3 views
1

Я получаю следующую ошибку при воспроизведении 2.1.3: [RuntimeException: невозможно создать экземпляры контроллеров классов. Приложение $ Пользователь. Он должен иметь конструктор по умолчанию]Ошибка Play Framework при BindRequest

Вот мой файл Application.java ... Я не могу сказать, что я делаю неправильно! Это происходит, когда я делаю запрос POST/login.

package controllers; 

import play.mvc.*; 
import play.data.*; 
import views.html.*; 

public class Application extends Controller { 

    private static boolean loggedin = false; 
    private static User currentUser; 
    private static Form<User> LoginForm = Form.form(User.class); 

    public static Result index() { 

     String message, title; 

     if(!loggedin) 
     { 
      title = "Login"; 
      message = "Please log in."; 
     } 
     else 
     { 
      title = "Welcome"; 
      message = "You are logged in!"; 
     } 
     return ok(index.render(title, message, loggedin)); 
    } 

    public static Result login() { 

     currentUser = LoginForm.bindFromRequest().get(); 

     if(currentUser.getUsername().equals("test") && currentUser.getPassword().equals("password")) { 
      loggedin = true; 
      return redirect(routes.Application.index()); 
     } 
     else { 
      String title = "Login"; 
      String message = "An error occurred. Please try logging in again."; 
      return ok(index.render(title, message, loggedin)); 
     } 
    } 

    static class User { 
     private String username; 
     private String password; 

     public User() { 
      this.username = ""; 
      this.password = ""; 
     } 

     public String getUsername() { 
      return this.username; 
     } 
     public String getPassword() { 
      return this.password; 
     } 
    } 

} 

ответ

1

Класс User должен иметь конструктор по умолчанию. Предоставляя конструктор без формальных параметров, вы переопределили конструктор по умолчанию, поэтому он не генерируется во время компиляции. Попробуйте удалить конструктор и посмотреть, исправляет ли он проблему.

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