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() 方法返回参数为空的对象的主要内容,如果未能解决你的问题,请参考以下文章

Play framework 2.5新建工程执行日志

play-framework的安装与使用

Play Framework Java - 包 play.db 不存在

开发工具之play framework

Play Framework 2.4 发送邮件

Play Framework 路由中的变量