如何在Spring MVC中的ThymeLeaf中实现编辑功能

时间:2015-03-28 18:00:25

标签: java spring thymeleaf

我正在使用this tutorial 我看到每行的删除功能:

  

7.6动态字段

     

感谢Spring MVC中的高级表单字段绑定功能,   我们可以使用复杂的Spring EL表达式绑定动态表单字段   我们的形式支持bean。这将允许我们创建新的Row对象   在我们的SeedStarter bean中,并将这些行的字段添加到我们的表单中   用户请求。

     

为了做到这一点,我们需要一些新的映射方法   我们的控制器,它将从我们的SeedStarter中添加或删除一行   取决于具体请求参数的存在:

@RequestMapping(value="/seedstartermng", params={"addRow"})
public String addRow(final SeedStarter seedStarter, final BindingResult bindingResult) {
    seedStarter.getRows().add(new Row());
    return "seedstartermng";
}

@RequestMapping(value="/seedstartermng", params={"removeRow"})
public String removeRow(
        final SeedStarter seedStarter, final BindingResult bindingResult, 
        final HttpServletRequest req) {
    final Integer rowId = Integer.valueOf(req.getParameter("removeRow"));
    seedStarter.getRows().remove(rowId.intValue());
    return "seedstartermng";
}
     

现在我们可以在表单中添加动态表:

<table>
  <thead>
    <tr>
      <th th:text="#{seedstarter.rows.head.rownum}">Row</th>
      <th th:text="#{seedstarter.rows.head.variety}">Variety</th>
      <th th:text="#{seedstarter.rows.head.seedsPerCell}">Seeds per cell</th>
      <th>
        <button type="submit" name="addRow" th:text="#{seedstarter.row.add}">Add row</button>
      </th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="row,rowStat : *{rows}">
      <td th:text="${rowStat.count}">1</td>
      <td>
        <select th:field="*{rows[__${rowStat.index}__].variety}">
          <option th:each="var : ${allVarieties}" 
                  th:value="${var.id}" 
                  th:text="${var.name}">Thymus Thymi</option>
        </select>
      </td>
      <td>
        <input type="text" th:field="*{rows[__${rowStat.index}__].seedsPerCell}" />
      </td>
      <td>
        <button type="submit" name="removeRow" 
                th:value="${rowStat.index}" th:text="#{seedstarter.row.remove}">Remove row</button>
      </td>
    </tr>
  </tbody>
</table>
     

在这里可以看到很多东西,但我们不应该这么做   现在明白......除了一件奇怪的事情:

现在我没有实现编辑功能。

想法?

0 个答案:

没有答案