Playframework 在表单中播放2.5 java.lang.NullPointerException

Playframework 在表单中播放2.5 java.lang.NullPointerException,playframework,form-submit,playframework-2.5,Playframework,Form Submit,Playframework 2.5,我有一个小应用程序,我只想创建一个简单的表单并存储用户输入,但是每次尝试运行该应用程序时,我都会得到一个java.lang.NullPointerException,它告诉我当在definitionForm中声明表单时,控制器类中的index方法出错 这是我的控制器 public class HomeController extends Controller { @Inject public static FormFactory formFactory; public Result inde

我有一个小应用程序,我只想创建一个简单的表单并存储用户输入,但是每次尝试运行该应用程序时,我都会得到一个java.lang.NullPointerException,它告诉我当在definitionForm中声明表单时,控制器类中的index方法出错

这是我的控制器

public class HomeController extends Controller {
@Inject 
public static FormFactory formFactory;

public Result index() {
    Form<Definition> definitionForm = formFactory.form(Definition.class);
    return ok(index.render(definitionForm,"Your new application is ready."));
}
public Result submit(){
    Form<Definition> definitionForm = formFactory.form(Definition.class).bindFromRequest();
    Definition definition=definitionForm.get();
    definition.save();
    return redirect(routes.HomeController.index());

}}
我有

ebean.default = ["models.*"]

在我的应用程序conf和playebean插件中,我不确定问题出在哪里

如果有人无意中发现(Tijkikiki已经在评论中说明了这一点),就把它作为一个答案:
FormFactory
字段不应该是静态的

更多信息:

Play 2.5.x文档说明:

要包装类,必须将play.data.FormFactory注入控制器,然后控制器允许您创建表单:

formuserform=formFactory.Form(User.class)

因此,将
FormFactory
注入控制器的正确方法如下:

package controllers;

import play.*;
import play.mvc.*;

public class Application extends Controller {

    @Inject FormFactory formFactory;

    ...
}

在注入FormFactory时尝试移除静态,FormFactory似乎根本没有被注入。谢谢,这解决了我的问题。您是否曾经解决过
MailerClient
的空指针问题,我有相同的错误,使用添加到我的控制器中的
@Inject-MailerClient-MailerClient
,而不是静态前缀,但这种空指针错误仍然存在。p、 s.
play2.6.x
我也试图删除
静态
,但仍然不适用于我。
ebean.default = ["models.*"]
package controllers;

import play.*;
import play.mvc.*;

public class Application extends Controller {

    @Inject FormFactory formFactory;

    ...
}