[英]SpringBoot / Thymeleaf - can't delete hashmap key
我想为 hashmap 中的每个值创建一个删除按钮,但它不起作用... :-( 我在 de controller 方法中使用了一个记录器:->> HomeController:删除重量 Z37A6259CC0C1DAE299A7866
Spring Controller
@RequestMapping(value = "/deleteValue", method = RequestMethod.POST)
public String deleteValue(Principal principal, Long key, ModelMap modelMap) {
User user = authService.extractUserFromAuthInfo(principal);
user.deleteValueByKey(key);
userDAO.save(user);
return "redirect:/";
}
用户 Model
@ElementCollection
@CollectionTable(name = "user_timeline", joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")})
@MapKeyColumn(name = "date")
@Column(name = "weight")
private Map<Long, Double> weights;
...
public void deleteValueByKey (Long key) {
weights.remove(key);
}
Thymeleaf(正常情况下,问题就在这里)
<tr th:each="weight : ${user.weights}">
<td>
<form method="POST" action="/deleteValue" modelAttribute="user">
<input type="hidden" th:value="*{weight.key}"/>
<button type="submit">X</button>
</form>
</td>
</tr>
我发现了问题:输入行中缺少name="key"
<form method="POST" action="/deleteValue">
<tr th:each="weight : ${user.weights}">
<input type="hidden" name="key" th:value="${weight.key}"/>
<button type="submit">X</button>
</tr>
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.