【问题标题】:Play framework Form object for multiple entities为多个实体播放框架表单对象
【发布时间】:2015-04-15 07:21:30
【问题描述】:

我正在使用 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 但它会给我单独的列,而不是实体对象。

这可能吗?如果是,我该如何实现?

【问题讨论】:

    标签: java forms jpa playframework playframework-2.2


    【解决方案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
          }
       ]
    }
    

    【讨论】:

      【解决方案2】:

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

      无论如何...我个人肯定会使用 jQuery 和 AJAX 来完成,这将是更 现代 的方法,这样您只需发送对您想要添加的 skill 的请求/edit/delete 和其他都没有改变,AJAX 返回操作的状态,因此您可以修改页面,而无需每次重新加载和重新渲染整个视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 2021-10-16
        • 1970-01-01
        • 2012-05-28
        • 1970-01-01
        • 2016-11-08
        • 1970-01-01
        相关资源
        最近更新 更多