如何在Thymeleaf的表单中提交复选标记值列表?

时间:2016-02-03 01:40:39

标签: java html spring spring-mvc thymeleaf

我正在尝试创建一个表,其中显示已添加的所有日志的列表。除了显示我希望有另一列复选框的信息,点击它时,我可以使用相应的删除按钮删除它们。

我遇到的问题是我无法将复选框中的值放入Longs数组中。我还希望保持桌面功能正确显示。

对于我的表格,我有以下代码:

<form method="post" th:action="@{/projects/log/delete/}" th:object="${deleteForm}">
  <div th:each="log : ${allLogs}" class="row">
    <tbody>
      <tr class="active">
        <td>
          <input type="checkbox" th:field="*{logIds}" th:value="${log.id}" />
        </td>
        <td th:text="${log.teamUsed}"></td>
        <td th:text="${log.opponentStarters}"></td>
        <td th:text="${log.opponentOthers}"></td>
        <td th:text="${log.myStarters}"></td>
        <td th:text="${log.myOthers}"></td>
        <td th:text="${log.result}"></td>
      </tr>
    </tbody>
  </div>
  <button type="submit" id="deleteButton" class="hidden"></button>
</form>

我尝试将复选框值放入的表单是:(log.id是一个很长的)

public class LogDeleteForm {

    private List<Long> logIds = new ArrayList<>();

    public List<Long> getLogIds() {
        return logIds;
    }

    public void setLogIds(List<Long> logIds) {
        this.logIds = logIds;
    }
}

在我的控制器中,我的视图设置如下:

@RequestMapping(value = "pokemon_log", method = RequestMethod.GET)
public String view(Model model) {
    model.addAttribute("addForm", new logForm());
    model.addAttribute("deleteForm", new logDeleteForm());
    model.addAttribute("allLogs", logService.getAllLogs());
    return "log";
}

我能够实现删除罚款我无法获得我想要删除的ID。如何将复选框值放入多头列表?

1 个答案:

答案 0 :(得分:0)

原来我的问题出在我的deleteLogs方法中:

aWrites

我的重定向是&#34;重定向:/ log&#34;而不是&#34;重定向:/ projects / log&#34;

此外我的按钮缺少名称=&#34;删除&#34;因为它无法被认定为具有删除参数的提交。