Play framework 多个实体的Form对象
Play framework Form object for multiple entities
我在使用 Play 2.2.1 时卡住了。基本上我在 Jobportal
应用程序中工作,我遇到 Jobseeker
需要填写 his/her skills
(技能名称、技能经验等)的情况。因此,为此我创建了一个单独的实体 Skill
.
我的问题是用户可以选择添加多项技能。所以如果用户只输入一项技能我可以简单地做:
Form<Skill> sk=Form.form(Skill.class).bindRequest();
但是如果用户输入多个技能,我如何从表单中检索这些多个对象?我需要这样的东西:
Form<List<Skill>> sk=Form.form(Skill.class).bindRequest();
意思是从表单中获取实体对象列表,上面这行只是对我想要的解释。
我搜索过这个主题,但没有找到任何结果。我也知道我可以简单地使用 DynamicForm
或 request
但它会给我单独的列,而不是实体对象。
这可能吗?如果是,我该如何实现?
为 Skill
class 创建包装器 class,如下所示:
public class Skills {
private List<Skill> skills;
// setters and getters
}
并根据请求绑定它:
Form<Skills> skills = Form.form(Skills.class).bindRequest();
如果你post一个json,让它看起来像这样:
{
"skills": [
{
// skill 1
},
{
// skill 2
}
]
}
绑定多个对象有多种方式Mon Calamari展示了一种。您也可以只使用 DynamicForm
不带任何形式的 bindFromRequest() 然后自己更新给定的技能。
无论如何......我个人肯定会用 jQuery 和 AJAX 来做,那会更 modern 方法,这样你只需发送您想要 add/edit/delete 的 skill
的请求,其他的则保持不变,AJAX returns 操作状态,这样您就可以修改页面而无需重新加载和重新每次渲染整个视图。
我在使用 Play 2.2.1 时卡住了。基本上我在 Jobportal
应用程序中工作,我遇到 Jobseeker
需要填写 his/her skills
(技能名称、技能经验等)的情况。因此,为此我创建了一个单独的实体 Skill
.
我的问题是用户可以选择添加多项技能。所以如果用户只输入一项技能我可以简单地做:
Form<Skill> sk=Form.form(Skill.class).bindRequest();
但是如果用户输入多个技能,我如何从表单中检索这些多个对象?我需要这样的东西:
Form<List<Skill>> sk=Form.form(Skill.class).bindRequest();
意思是从表单中获取实体对象列表,上面这行只是对我想要的解释。
我搜索过这个主题,但没有找到任何结果。我也知道我可以简单地使用 DynamicForm
或 request
但它会给我单独的列,而不是实体对象。
这可能吗?如果是,我该如何实现?
为 Skill
class 创建包装器 class,如下所示:
public class Skills {
private List<Skill> skills;
// setters and getters
}
并根据请求绑定它:
Form<Skills> skills = Form.form(Skills.class).bindRequest();
如果你post一个json,让它看起来像这样:
{
"skills": [
{
// skill 1
},
{
// skill 2
}
]
}
绑定多个对象有多种方式Mon Calamari展示了一种。您也可以只使用 DynamicForm
不带任何形式的 bindFromRequest() 然后自己更新给定的技能。
无论如何......我个人肯定会用 jQuery 和 AJAX 来做,那会更 modern 方法,这样你只需发送您想要 add/edit/delete 的 skill
的请求,其他的则保持不变,AJAX returns 操作状态,这样您就可以修改页面而无需重新加载和重新每次渲染整个视图。