Play Framework bindFromRequest() 方法返回参数为空的对象
Posted
技术标签:
【中文标题】Play Framework bindFromRequest() 方法返回参数为空的对象【英文标题】:Play Framework bindFromRequest() method returns objects with null parameters 【发布时间】:2017-06-05 16:27:13 【问题描述】:我是 Play 新手!所以我正在尝试创建一个非常基本的发布请求,将用户输入的数据提取到表单中。但是,当我从表单中拉出对象时,它的所有字段都是空的。例如。这是我编写的一个名为 user 的基本类。
public class User
public String email;
public String password;
简单。这是我在 Controller 中的新用户类。
public Result new_user()
User user = Form.form(User.class).bindFromRequest().get();
System.out.println("Username: " + user.email);
System.out.println("Password: " + user.password);
return ok("This worked.");
我的路线文件:
GET / controllers.HomeController.start
POST /accounts/login controllers.HomeController.new_user()
最后是 html 表单:
<form action = "@routes.HomeController.new_user()" method = "post">
<input type="text" name="firstname">
<input type="text" name="lastname">
<button>Add Person</button>
</form>
我知道这不会保存到数据库,但如果我什至无法打印到控制台,我真的看不出尝试的意义。本质上,无论我输入什么,控制台都会打印“null”和“null”。我知道它确实创建了对象,因为打印用户会显示如下内容:
models.User@1204f842
但是字段没有设置!我该怎么做才能让它工作?
编辑:我应该提到我检查了表单是否有任何错误,它返回错误。
【问题讨论】:
【参考方案1】:修复html中的代码:
<input type="text" name="email">
<input type="text" name="password">
【讨论】:
谢谢!几天前我想通了,但实际上这是正确的解决方法。以上是关于Play Framework bindFromRequest() 方法返回参数为空的对象的主要内容,如果未能解决你的问题,请参考以下文章