Play框架表单(Java)
问题描述:
我正在查看Play!框架,使用Java(不想在同一时间学习新的框架和一种新的语言 - 我将纳入斯卡拉,因为我知道),到目前为止它是真棒。Play框架表单(Java)
虽然我对表单有点困难。我仍然坚持第一部分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)
作为form
是FormFactory
方法。
如果程序包缺少类路径中的某些配置问题或错误的播放版本。一个工作项目通常可以通过催化剂获得。
复制从你链接的页面:'要包装一个类,你必须注入一个play.data.FormFactory到你的控制器然后允许你创建表格' –
@Łukasz是啊,我看到了;问题是试图注入该类引发异常。显然这个班不存在。我会更详细地更新我的问题。 – iLikeBreakfast
首先,我认为你的表单不应该是静态的。根据文档,你的调用应该更像'userForm = form.form(model.User.class)',因为'form'是'FormFactory'的方法。但关于我不知道的遗失包。尝试从激活器创建你的项目也许?也许你有错误的游戏版本。 –