formFactory.form() 不存在!游戏框架
formFactory.form() doesn't exist ! PlayFramework
我有一个小问题,我想创建一个网络应用程序,我通过
的 java 文档学习了 PlayFramework
此示例代码:
public Result hello() {
DynamicForm requestData = formFactory.form().bindFromRequest();
String firstname = requestData.get("firstname");
String lastname = requestData.get("lastname");
return ok("Hello " + firstname + " " + lastname);
}
“'formFactory'”不存在。
为什么我没有这个字段?
当我想创建模型时,我没有模型class
如果你解决了我的问题,非常感谢! :)
您必须像这样注入您的 formFactory:
@Inject FormFactory formFactory;
To wrap a class you have to inject a play.data.FormFactory into your Controller
Play已经知道FormFactory
,所以只需要为它添加一个构造函数参数:
public class FooController {
private final FormFactory formFactory;
@Inject
public FooController(final FormFactory formFactory) {
this.formFactory = formFactory;
}
public Result hello() {
DynamicForm requestData = formFactory.form().bindFromRequest();
String firstname = requestData.get("firstname");
String lastname = requestData.get("lastname");
return ok("Hello " + firstname + " " + lastname);
}
}
我猜你提到的 Model
是 EBean。您需要为您的项目启用 EBean,然后您的类路径中就会有必要的 类。
在project/plugins.sbt
中:
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.0")
build.sbt
:
lazy val myProject = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
relevant docs 中提供了更多信息。
首先确保在您的 Play Controller 中导入这两个库:
import javax.inject.Inject;
import play.data.FormFactory;
之后,在使用表单生成器之前,将其注入您的代码:
@Inject FormFactory formFactory;
您的代码在此之后应该可以正常工作。
我有一个小问题,我想创建一个网络应用程序,我通过
的 java 文档学习了 PlayFramework此示例代码:
public Result hello() {
DynamicForm requestData = formFactory.form().bindFromRequest();
String firstname = requestData.get("firstname");
String lastname = requestData.get("lastname");
return ok("Hello " + firstname + " " + lastname);
}
“'formFactory'”不存在。
为什么我没有这个字段?
当我想创建模型时,我没有模型class
如果你解决了我的问题,非常感谢! :)
您必须像这样注入您的 formFactory:
@Inject FormFactory formFactory;
To wrap a class you have to inject a play.data.FormFactory into your Controller
Play已经知道FormFactory
,所以只需要为它添加一个构造函数参数:
public class FooController {
private final FormFactory formFactory;
@Inject
public FooController(final FormFactory formFactory) {
this.formFactory = formFactory;
}
public Result hello() {
DynamicForm requestData = formFactory.form().bindFromRequest();
String firstname = requestData.get("firstname");
String lastname = requestData.get("lastname");
return ok("Hello " + firstname + " " + lastname);
}
}
我猜你提到的 Model
是 EBean。您需要为您的项目启用 EBean,然后您的类路径中就会有必要的 类。
在project/plugins.sbt
中:
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.0")
build.sbt
:
lazy val myProject = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
relevant docs 中提供了更多信息。
首先确保在您的 Play Controller 中导入这两个库:
import javax.inject.Inject;
import play.data.FormFactory;
之后,在使用表单生成器之前,将其注入您的代码:
@Inject FormFactory formFactory;
您的代码在此之后应该可以正常工作。