Play!2框架 - 无法从表单中检索列表

时间:2014-10-29 23:21:13

标签: list arraylist playframework-2.0 ebean scala-template

我试图发布包含列表的绑定表单。这是我的scala模板代码:

<input type="hidden" value="@recipe.name" name="recipes[0].recipe.name">
            <input type="hidden" value="@recipe.id" name="recipes[1].recipe.id">
            <input type="hidden" value="@recipe.url" name="recipes[2].recipe.url">
            <input type="hidden" value="@user" name="user.email">
        </fieldset>
        <input type="submit" value="submit" class="btn btn-primary">} </td>

列表大小为3,但其他所有内容都为null。我可以检索用户电子邮件。以下是控制器的相关区域:

        MenuPlan menuPlan = boundForm.get();

    User user = User.getUser(menuPlan.user.email);

    List<Recipe> recipesForm = menuPlan.recipes;
    Logger.info("");
    Logger.info("Number of recipes in menuPlan.recipes = " + menuPlan.recipes.size());
    Logger.info("Name of recipe = " + menuPlan.recipes.get(1).name);
    Logger.info("");

        for(Recipe recipe : menuPlan.recipes){
            Logger.info("");
            Logger.info("The recipe id = " + recipe.id);
            Logger.info("");
            Logger.info("The recipe name = " + recipe.name);
            Logger.info("");
            Logger.info("The recipe url = " + recipe.url);
            Logger.info("");
            //Recipe recipeLoop = Recipe.findById(recipe.name);
            //menuPlan.recipes.add(recipeLoop);
        }

模型:

@ManyToMany
public List<Recipe> recipes;

@OneToOne(mappedBy="menuPlan")
public User user;

和         @ID     public Long id;

public String url;

@ManyToMany(cascade = CascadeType.ALL, mappedBy = "recipes")
public List<MenuPlan> menuPlans;

public String name;

我已经尝试将mappedBy切换到ManyToMany的每一侧,以查看它是否与所有权有关,但这并没有帮助。

正如在顶部所提到的,任何关于为什么元素在看起来被拾取时返回null的建议将非常感激。关于我可以测试什么的任何建议也将不胜感激!

1 个答案:

答案 0 :(得分:1)

列表中的食谱不需要再次调用。我只需要:

name="recipes[1].id">

而不是:

name="recipes[1].recipe.id">

非常简单。那个人丢了2个小时!