gpt4 book ai didi

java - Spring 在 View 中创建集合

转载 作者:行者123 更新时间:2023-12-01 12:55:58 26 4
gpt4 key购买 nike

View

假设我们的 View 获取了数据库中所有“成分”的列表,我们现在想要将数量信息添加到每个成分。

逻辑:

成分数量:

  • 成分:成分
  • 数量:数量

数量:

  • 字符串:单位
  • int:数量

成分:

  • 字符串:名称

菜肴:

  • 系列:成分
  • 字符串:名称

问题:

我们如何将每个选定成分的输入组合到成分数量列表中。我们只希望我们的列表包含选定的成分。

注释。数量有一个字符串单位和一个整数数量字段

额外。我正在考虑使用自定义转换器,但不知道如何做到这一点。

最佳答案

您不需要 Converter 。 Converter 用于进行高级类型转换,例如将传入字符串 'yyyy-mm-dd zone' 转换为 java.util.Date反之亦然。

Spring提供JSTL tags library将 modelAttribute 附加到 <form>及其领域。

您还可以将 IngredientQuantity 列表附加到 <form> <form>里面有很多关于如何使用list的教程.

一个这样的例子是 here

更新:

在您的情况下,您将在 Controller 设置方法中将 Dish 和 IngredientQuantity 的空列表添加到模型中,如下所示

class IngredientFormModel{

//It is important to use AutoPopulatingList as your list is dynamic
AutoPopulatingList<IngredientQuantity> ingredientQuantityList = new AutoPopulatingList<IngredientQuantity>(IngredientQuantity.class);
}

@RequestMapping(method=RequestMethod.GET)
public String setupForm(Model model) {
model.addAttribute("dish", dish);

IngredientFormModel ingredientFormModel = new IngredientFormModel();

model.addAttribute("ingredientFormModel", ingredientFormModel)
return "viewName";
}

将您的成分FormModel附加到<form>并使用.访问嵌套字段的运算符(注意:您可以在 JSP 中将菜作为 requestScope 中的常规属性进行访问)

<form:form modelAttribute="ingredientFormModel">
Dish Name: ${dish.name} <br>
<c:forEach var="ingredient" items="${dish.ingredients}" varStatus="count">
Ingredient Name: ${ingredient.name} <br>
<input type="hidden" name="ingredientFormModel.ingredientQuantityList[${count.index}].name" value="${ingredient.name}" />
Quantity: <input name="ingredientFormModel.ingredientQuantityList[${count.index}].quantity.quantity" type="text" /> </br>
Unit: <input name="ingredientFormModel.ingredientQuantityList[${count.index}].quantity.unit" type="text"/> </br>
</c:forEach>
</form:form>

在您的 Controller 类中,您可以按如下方式检索对象

@ModelAttribute("ingredientFormModel") IngredientFormModel ingredientFormModel

关于java - Spring 在 View 中创建集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23897798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com