玩!框架表单绑定错误

Nit*_*mer 1 java playframework-2.0

我正在尝试将表单绑定到请求但它失败并出现以下错误:

Execution exception
[RuntimeException: Cannot instantiate class controllers.Application$RequestData. It must have a default constructor]
Run Code Online (Sandbox Code Playgroud)

错误描述看起来很简单,但看看代码:

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();
    ...
}
Run Code Online (Sandbox Code Playgroud)

您可以看到该类确实具有默认构造函数,因此此错误根本不明确.

有任何想法吗?谢谢.


编辑

有趣的是,在官方文档中,他们使用的示例没有默认构造函数.

小智 5

从错误消息看,您的RequestData类看起来像是Application类的内部类,在这种情况下,需要Application实例来创建RequestData的实例(因为RequestData不是静态的).如果我有这个权利,那么要么将RequestData作为自己的类,要么 - 如果你想把它作为一个内部类 - 让它成为一个静态的内部类.