从表单对象中获取值时遇到一些问题。
我正在处理GET请求。这将生成具有预定义值的表单:
Form<ModelObject> form = form(ModelObject.class).fill(new ModelObject());
return renderJapid(form);
在模板中,我定义了Form<ModelObject>
的参数,并命名为'form'。在页面上只有标准的html输入框,如:
<input type="text" id="fieldName" name="fieldName" value="$form.apply("fieldName").value()">
提交此表单后,我使用另一种方法处理此POST请求:
Form<ModelObject> form = form(ModelObject.class).bindFromRequest();
if (form.hasErrors()) {
//render the form again with errors
} else {
ModelObject mo = form.get(); // NO-VALUE ERROR
}
每次我在标记行上得到无值错误,我想从表单中获取对象。你有什么想法可能是问题吗? (显示预填充数据,甚至提交后的表单对象具有正确的数据但没有值)
答案 0 :(得分:0)
Finnaly我解决了我的问题。问题是由我的GenericModel类(每个模型类从此类扩展)引起的,它具有方法public boolean validate()
。当我删除此方法时一切正常。我知道Play为我自己的对象自定义验证调用了这个方法,但我仍然不明白为什么这会将表单值更改为None
。