【发布时间】:2014-07-25 17:08:30
【问题描述】:
我正在尝试使用 Java Play,但我遇到了一个直接的障碍。情况很简单,设置也很简单。
我有一个名为Person 的模型类,它非常简单,看起来像这样;
package models.models;
import play.db.ebean.Model;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
* Created by asheshambasta on 25/07/14.
*/
@Entity
public class Person extends Model {
@Id
public Integer id;
public String name;
}
我有一条路线定义为;
POST /person controllers.Application.addPerson()
接下来,我在controllers.Application里面有个动作addPerson,就是
public static Result addPerson() {
Person person = form(Person.class).bindFromRequest().get();
person.save();
Logger.debug(person.toString());
Logger.debug(form().get("name"));
return redirect(controllers.routes.Application.index());
}
index.scala.html 看起来像:
@(message: String)
@main("Welcome to Play") {
<form action="@routes.Application.addPerson()" method="post">
<input type="text" name="name" />
<button>Add person</button>
</form>
}
我还检查了我的浏览器调试工具,发现name 表单元素已正确发布到服务器。
发生的事情很奇怪:在操作中似乎没有任何表单参数可见。如您所见,我有两个Logger.debug,每个都显示person 对象中name 属性的空值,以及尝试使用form.get("name") 检索时的空值。
我已经尝试过我认为解决此问题的最佳方法,但我并没有真正在网上看到太多关于此问题的信息。这似乎太基本了,不可能成为 Play 框架的问题。
我在这里做错了什么?
请注意,我使用的是 Mac,并且正在使用 mySQL 来存储数据。
【问题讨论】:
-
谁能回答这个问题?我相信这是一个非常简单的情况,显然这里有一些非常错误的地方。如果像这样的简单案例无法工作,没有明显的原因/警告,我怀疑在任何现实世界场景中都依赖 Play。
-
你让它工作了吗?怎么样?
-
@Gevorg 恐怕在这一点上我放弃了尝试将 Java 与 Play 框架一起使用。我借此机会深入研究了 Scala,并发现了更多关于常见障碍的文档和在线讨论。从那以后,我部署了我的第一个基于 Play-Scala 的 API。 ;-)
标签: java html scala playframework forms http-post