我正在使用play-framework-java 2.5.4。
我想将用户输入值与我的模型类变量绑定。
除了 POST :
之外,这是我的控制器功能public Result formSubmit()
{
MlmModel mlmModel;
play.data.Form<MlmModel> form = play.data.Form.form(MlmModel.class).bindFromRequest();
mlmModel = form.get();
mlmModel.save();
mlmModel.callUpdate();
return ok(Json.toJson(mlmModel));
}
但我收到此错误
[CompletionException: java.lang.IllegalStateException: Error(s) binding form: {"parent_id":["Invalid value"]}]
因为,我的输入字段之一不是必须由用户填写。
如果用户将某些字段留空,那就没问题了。
但是我的代码应该
我正在使用 play-Eben ,我的数据库服务器是MySQL 5.x
我怎样才能做到这一点?
编辑1:
MlmModel.java
@Entity
public class MlmModel extends Model
{
@Id
@GeneratedValue()
public Long ID;
public Logic logic;
public MlmModel() {
this.parent_id = 0;
logic = new Logic(this);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String name;
public long getParent_id() {
return parent_id;
}
public void setParent_id(long parent_id) {
if (String.valueOf(parent_id).isEmpty())
this.parent_id = 0;
this.parent_id = parent_id;
}
@Column(columnDefinition = "long default 0")
public long parent_id;
@Formats.DateTime(pattern="dd/MM/yyyy")
public Date created_time = new Date();
public Long balance = new Long(0);
public static Finder<Long, MlmModel> find = new Finder<Long,MlmModel>(MlmModel.class);
public List<ValidationError> validate()
{
List<ValidationError> errors = new ArrayList<ValidationError>();
if (Long.toString(parent_id).isEmpty())
parent_id = 0;
if (errors.isEmpty())
return null;
else
return errors;
}
}