2014-10-29 90 views
0

我試圖發佈一個包含列表的綁定表單。這是我的斯卡拉模板代碼:Play!2框架 - 無法從表單中檢索列表

<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> 

列表大小是三,但其他一切都是空的。我可以檢索用戶電子郵件。下面是控制器的相關領域:

 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 衆長ID;

public String url; 

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

public String name; 

我已經嘗試切換的mappedBy到多對多的每一面,看它是否是與所有權的事,但是這並沒有幫助。

正如在頂部提到的,任何有關爲什麼元素在看起來它們被拾取時返回null的建議將不勝感激。任何建議,我可以測試也將不勝感激!

回答

1

列表中的食譜不需要再次調用。我只需要:

name="recipes[1].id"> 

相反的:

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

非常簡單。在那一個上失去了2個小時!