繁体   English   中英

SpringBoot / Thymeleaf - 无法删除 hashmap 密钥

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM