没有错误的表单不返回任何值

时间:2013-09-18 15:51:53

标签: playframework-2.0 japid

从表单对象中获取值时遇到一些问题。

  1. 我正在处理GET请求。这将生成具有预定义值的表单:

    Form<ModelObject> form = form(ModelObject.class).fill(new ModelObject());
    return renderJapid(form);
    
  2. 在模板中,我定义了Form<ModelObject>的参数,并命名为'form'。在页面上只有标准的html输入框,如:

    <input type="text" id="fieldName" name="fieldName" value="$form.apply("fieldName").value()">
    
  3. 提交此表单后,我使用另一种方法处理此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
    }
    

    每次我在标记行上得到无值错误,我想从表单中获取对象。你有什么想法可能是问题吗? (显示预填充数据,甚至提交后的表单对象具有正确的数据但没有值)

1 个答案:

答案 0 :(得分:0)

Finnaly我解决了我的问题。问题是由我的GenericModel类(每个模型类从此类扩展)引起的,它具有方法public boolean validate()。当我删除此方法时一切正常。我知道Play为我自己的对象自定义验证调用了这个方法,但我仍然不明白为什么这会将表单值更改为None