Играть!ошибка привязки формы каркаса - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь связать форму с запросом, но она завершается с ошибкой:

Execution exception
[RuntimeException: Cannot instantiate class controllers.Application$RequestData. It must have a default constructor]

Описание ошибки кажется простым и понятным, но, глядя на код:

public class RequestData {
    @Required
    public String id;

    public RequestData() { }

    public RequestData(String id) {
        this.id = id;
    }
}

public static Result index() {
    ...
    Form<RequestData> requestDataForm = form(RequestData.class);
    RequestData requestData = requestDataForm.bindFromRequest().get();
    ...
}

Вы видите, что класс действительно имеет конструктор по умолчанию, и поэтому эта ошибка не совсем ясна.

Есть идеи? Спасибо.


Редактировать

Что забавно, так это то, что в официальной документации используемый ими пример не имеет конструктора по умолчанию.

1 Ответ

5 голосов
/ 22 марта 2012

Из сообщения об ошибке похоже, что ваш класс RequestData является внутренним классом класса Application, и в этом случае экземпляр Application необходим для создания экземпляра RequestData (поскольку RequestData не является статическим).Если у меня есть это право, то либо сделайте RequestData своим собственным классом, либо - если вы хотите сохранить его как внутренний класс - сделайте его статическим внутренним классом.

...