我正在做一个食谱应用程序。每个食谱将包含几个成分显然。
所以我把食谱和配料做成一对多的关系。这样我就可以在一个食谱中有多个配料。
但问题是,当我尝试使用thymeleaf网页添加食谱时,我想动态添加成分,我的意思是我想为每个食谱添加尽可能多的成分,我需要使用javascript使成分的输入框动态增加或减少。
下面是我的成分实体类:
public class Ingredient {
@Id
@GeneratedValue
private int id;
private String name;
private String amount;
}
这是处方实体表
public class Recipe {
@Id
@GeneratedValue
private int id;
private String name;
private String description;
private String instruction;
private Timestamp createdTime;
@OneToMany(cascade=CascadeType.ALL)
private List<Ingredient> ingredients = new ArrayList<>();
}
以下是添加配方的方法:
@GetMapping("/addRecipe")
public String addRecipeGet(Model model) {
model.addAttribute("recipe", new Recipe());
return "add_recipe";
}
@PostMapping("/addRecipe")
public String addRecipePost(Recipe recipe) {
recipeService.createRecipe(recipe);
return "home";
}
我尝试将recipe对象与thymeleaf绑定,如下所示:
<body>
<form method="POST" th:action="@{/addRecipe}" th:object="${recipe}" class="form-signup">
<label class="form-label pt-3" for="name">Recipe Name</label>
<input id="name" name="name" type="text" class="form-control mb-3" th:field="*{name}" placeholder="Recipe Name" />
<label class="form-label pt-3" for="description">Description</label>
<textarea id="description" name="description" type="text" class="form-control mb-3" th:field="*{description}" placeholder="Description"></textarea>
<label class="form-label pt-3" for="instruction">Instruction</label>
<textarea id="instruction" name="instruction" type="text" class="form-control mb-3" th:field="*{instruction}" placeholder="Instruction"></textarea>
<ul>
<li>
<div>
<input type="text" class="form-control mb-3" th:name="???" placeholder="ex) Onion"></input>
<input type="text" class="form-control mb-3" th:name="???" placeholder="ex) 300g"></input>
</div>
</li>
</ul>
<div class="d-grid col-8 mx-auto">
<button type="submit" class="btn btn-dark">Submit</button>
</div>
</form>
</body>
我只是试着现在只绑定一种成分,但它显然不起作用..我不知道该在th:字段或th:名称中放入什么
我不知道如何在对象中发布数据列表
有没有办法解决这个问题?
1条答案
按热度按时间k3bvogb11#
您可以使用相同格式的
th:field="*{ingredients[i].name}"
或name来系结清单项目。有关如何在thymeleaf中处理列表绑定的完整指南,请参见https://www.baeldung.com/thymeleaf-list。