嗨,我想说:
此方法将不同的值从模型发送到窗体。另外,发送hashmap<color,size>
@GetMapping("/create")
public String create(Model model){
model.addAttribute("subcategories", subcategoryRepository.findAll());
model.addAttribute("colors", colorRepository.findAll());
model.addAttribute("color", new Color());
model.addAttribute("size", new Size());
model.addAttribute("map", new HashMap<Color, Size>());
model.addAttribute("sizes", sizeRepository.findAll());
model.addAttribute("product", new Product());
return "/admin/product/create";
}
这是我表单的一部分,第一个select是hashmap的键,第二个是value。
<br>
<!-- <div th:each="entry : ${map}">-->
<label for="colors">Colors</label>
<select class="form-control" th:name="${'this would be the key of the hashmap'}" id="colors">
<option
th:each="Dcolor: ${colors}"
th:value="${Dcolor.id}"
th:text="${Dcolor.name}">
</option>
</select>
<br>
<label for="sizes">Sizes</label>
<select class="form-control" th:name="${'this would be the value of the hashmap'}" id="sizes">
<option
th:each="Dsize: ${sizes}"
th:value="${Dsize.id}"
th:text="${Dsize.name}"></option>
</select>
存储方法在这个方法中我会保存模型,但暂时不会。
@PostMapping("/store")
public String store(@ModelAttribute Product product,
@RequestParam Map<Color,Size> map,
@ModelAttribute Size size,
MultipartFile file){
System.out.println("Product :: "+product);
System.out.println("Map<Color,Size> :: "+map.keySet());
return "redirect:/admin/products";
}
在表单数据发送的最后,到目前为止我还没有插入任何内容,因为首先我要证明它为我带来了hashmap的结构。
我已经搜索过了,但还没有找到这样做的方法,大多数论坛都会对hashmap执行foreach并插入值,但在我的情况下,它不会起作用,因为我的hashmap中没有值。
注意:稍后我将更改结构,使hashmap为“<color,list>”,因为在我的项目中,颜色可以有多种大小
暂无答案!
目前还没有任何答案,快来回答吧!