播放框架多个实体的表单对象

时间:2015-04-15 07:21:31

标签: java forms jpa playframework playframework-2.2

我正在使用Play 2.2.1并陷入困境。基本上我在Jobportal应用程序中工作,我有Jobseeker需要填写他/她skills(具有技能名称,技能经验等)的情况。因此,我创建了一个单独的实体Skill

我的问题是用户可以选择添加多种技能。因此,如果用户只输入一项技能,我可以这样做:

Form<Skill> sk=Form.form(Skill.class).bindRequest();

但是如果用户输入多种技能,我如何从表单中检索这些多个对象?我需要这样的东西:

Form<List<Skill>> sk=Form.form(Skill.class).bindRequest();

意味着从表单中检索实体对象列表,上面的行只是对我想要的解释。

我搜索了这个主题,但没有取得任何成功。我也知道我可以简单地使用DynamicFormrequest,但它会为我提供单独的列,而不是实体对象。

这可能吗?如果是,我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

Skill类创建一个包装类,如下所示:

public class Skills {

    private List<Skill> skills;

    // setters and getters

}

并从请求中绑定它:

Form<Skills> skills = Form.form(Skills.class).bindRequest();

如果您发布了json,请将其设置如下:

{
   "skills": [
      {
         // skill 1
      },
      {
         // skill 2
      }
   ]
}

答案 1 :(得分:0)

有多种方法可以绑定多个对象 Mon Calamari 显示一个。您也可以使用DynamicForm而不使用任何形式的bindFromRequest(),然后自己更新给定的技能。

无论如何......就我个人而言,我肯定会使用jQuery和AJAX,这将是更多现代方法,这样你就可以发送你想要的skill请求添加/编辑/删除和其他不受影响,AJAX返回操作的状态,因此您可以修改页面而不重新加载页面并每次重新渲染整个视图。