我正在使用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();
意味着从表单中检索实体对象列表,上面的行只是对我想要的解释。
我搜索了这个主题,但没有取得任何成功。我也知道我可以简单地使用DynamicForm
或request
,但它会为我提供单独的列,而不是实体对象。
这可能吗?如果是,我怎样才能做到这一点?
答案 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返回操作的状态,因此您可以修改页面而不重新加载页面并每次重新渲染整个视图。