EBean:为什么bindFromRequest()返回空值?

时间:2014-08-10 14:58:22

标签: java playframework-2.0 persistence ebean

我正在使用Play框架和Sqlite。

我创建了一个模型 - Bar

(app / models / Bar.java的内容)

package models;

import javax.persistence.Entity;
import javax.persistence.Id;
import play.db.ebean.Model;

@Entity
public class Bar extends Model{

    @Id
    public String id;
    public String name;

    public Bar(String id, String name){
        this.id = id;
        this.name = name;

    }
    public Bar(){}

    public static Finder<String, Bar> find = new Finder(String.class, Bar.class);

}

我正试图通过表单提交添加栏:

public static Result addBar(){
    Form<Bar> form = Form.form(Bar.class).bindFromRequest();
    Bar bar = form.get();
    bar.save();
    return redirect(routes.Application.index());

}

但是,bar中的id和name都是null。 请帮我理解为什么会这样? 感谢。

1 个答案:

答案 0 :(得分:0)

为将来的用户回答这个问题:

如果在application.conf文件中,Ebean配置为ebean.default="models.*",则包含模型的包必须为models而不是model

关于另一个问题(form.get()为null),在将表单与请求绑定后,您需要确保它没有错误:

public static Result addBar() {
    Form<Bar> form = Form.form(Bar.class).bindFromRequest();
    if (form.hasErrors()) {
        // Do something with the errors (i.e. : redirect with flash message containing the main error)
    }
    Bar bar = form.get();
    bar.save();
    return redirect(routes.Application.index());
}