我正在检查Play!框架,使用Java(不想同时学习新的框架和新的语言-我将在学习过程中结合使用Scala),到目前为止,它还是很棒的。

我在表格方面有些困难。我仍然停留在第一部分here上,据我了解,我某种程度上需要获取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);
    }
}


play.data软件包对我而言不存在。也许我安装不正确?需要明确的是,我确实是从IntelliJ开始这个项目的

最佳答案

一个问题是您的表单不应是静态的,因为在注入FormFactory之前无法对其进行初始化。

根据文档,此调用

Form<model.User> userForm = form(model.User.class);


应该

Form<model.User> userForm = form.form(model.User.class)


因为formFormFactory的方法。

如果包在类路径中丢失,则说明某些配置问题或播放版本错误。通常可以通过激活器获得一个工作项目。

10-02 10:25