播放框架表单(Java)

播放框架表单(Java),java,scala,playframework,dependency-injection,Java,Scala,Playframework,Dependency Injection,我在看这出戏!框架,使用Java(我不想同时学习一个新框架和一种新语言——在我学习的过程中,我将合并Scala),到目前为止,它非常棒 不过我在表格方面有点困难。我仍然停留在第一部分,据我所知,我不知何故需要获得一个FormFactory的实例或相关的东西,但是我不知道它可能位于哪个包中,或者FormFactory是否也是另一个神奇的方法(比如ok) 任何提示都将不胜感激 编辑以下是我的代码: package controllers; import com.google.inject.Inje

我在看这出戏!框架,使用Java(我不想同时学习一个新框架和一种新语言——在我学习的过程中,我将合并Scala),到目前为止,它非常棒

不过我在表格方面有点困难。我仍然停留在第一部分,据我所知,我不知何故需要获得一个
FormFactory
的实例或相关的东西,但是我不知道它可能位于哪个包中,或者
FormFactory
是否也是另一个神奇的方法(比如
ok

任何提示都将不胜感激

编辑以下是我的代码:

package controllers;

import com.google.inject.Inject;
import play.data.FormFactory;

import play.api.data.Form;
import play.mvc.*;

public class User extends Controller {
    @Inject
    FormFactory form;
    final static Form<model.User> userForm = form(model.User.class);

    public Result post() {
        model.User user = userForm.bindFromRequest().get();
        return ok("The form was received!: " + user);
    }
}
包控制器;
导入com.google.inject.inject;
导入play.data.FormFactory;
导入play.api.data.Form;
导入play.mvc.*;
公共类用户扩展控制器{
@注入
表格工厂表格;
最终静态表单userForm=Form(model.User.class);
公开结果公告(){
model.User=userForm.bindFromRequest().get();
返回ok(“表单已收到!:”+用户);
}
}

play.data
包对我来说不存在。也许我的安装不正确?要明确的是,我确实是从IntelliJ开始这个项目的,一个问题是表单不应该是静态的,因为在注入
FormFactory
之前,无法初始化它

根据这个电话

Form<model.User> userForm = form(model.User.class);
formuserform=Form(model.User.class);
应该是

Form<model.User> userForm = form.form(model.User.class)
formuserform=Form.Form(model.User.class)
as
form
FormFactory
的方法


如果包在类路径中丢失,则会导致配置问题或播放版本错误。工作项目通常可以通过activator获得。

一个问题是表单不应该是静态的,因为在注入
FormFactory
之前无法初始化它

根据这个电话

Form<model.User> userForm = form(model.User.class);
formuserform=Form(model.User.class);
应该是

Form<model.User> userForm = form.form(model.User.class)
formuserform=Form.Form(model.User.class)
as
form
FormFactory
的方法


如果包在类路径中丢失,则会导致配置问题或播放版本错误。工作项目通常可以通过activator获得。

从您链接的页面复制:
要包装类,您必须将play.data.FormFactory注入控制器,然后允许您创建表单
@ukasz是的,我看到了;问题是试图注入该类时抛出异常。很明显,这个阶级根本不存在。我会更详细地更新我的问题。首先,我认为你的表格不应该是静态的。根据文档,您的调用应该更像
userForm=form.form(model.User.class)
as
form
FormFactory
的方法。但是关于丢失的包裹我不知道。尝试从activator创建您的项目?也许你的游戏版本错了。@ukasz似乎已经解决了问题-刚刚使用了激活器。奇怪的谢谢你的帮助!发表你的评论作为回答,我很乐意接受!复制自您链接的页面:
要包装一个类,您必须将play.data.FormFactory注入控制器,然后允许您创建表单
@Łukasz是的,我看到了;问题是试图注入该类时抛出异常。很明显,这个阶级根本不存在。我会更详细地更新我的问题。首先,我认为你的表格不应该是静态的。根据文档,您的调用应该更像
userForm=form.form(model.User.class)
as
form
FormFactory
的方法。但是关于丢失的包裹我不知道。尝试从activator创建您的项目?也许你的游戏版本错了。@ukasz似乎已经解决了问题-刚刚使用了激活器。奇怪的谢谢你的帮助!发表你的评论作为回答,我很乐意接受!