gpt4 book ai didi

Java Play : bindFromRequest() not working

转载 作者:行者123 更新时间:2023-11-28 03:59:20 24 4
gpt4 key购买 nike

我正在尝试使用 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 属性为 null ,以及尝试使用 form.get("name") 检索时。

我已经尝试了我能看到的解决这个问题的最佳方法,但我在网上并没有真正看到太多关于这个问题的信息。这似乎太基本了,不会成为 Play 框架的问题。

我在这里做错了什么?

请注意,我在 Mac 上使用 mySQL 来存储数据。

最佳答案

在尝试使用 Java 时,我也遇到了同样的问题。

原因: 当您将 Eclipse 项目首选项设置为 自动构建 时,问题似乎会出现。这会弄乱 play 生成的类,并在更改时用 eclipse 生成的类覆盖它。

解决方案: 从项目设置和终端中禁用“自动构建”,执行play clean 以从 Play 创建类!

请告诉我这是否有效,很多人都面临同样的问题。这可能应该是文档本身的提示 Reference .

关于Java Play : bindFromRequest() not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24960959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com