【问题标题】:Empty form when submitting with SpringMVC and Thymeleaf使用 SpringMVC 和 Thymeleaf 提交时为空表单
【发布时间】:2013-09-05 11:06:41
【问题描述】:

我正在尝试编辑表格中的数据(复选框)。但是当我点击提交按钮时,控制器中的表单是空的

我没有找到百里香的例子,所以我改编了this example

我使用了一个表单对象:

public class MyForm {
  private List<MyObj> data;
  // ...
}

具有两种方法(GET 和 POST)的控制器:

@RequestMapping(value="/edit/", method = RequestMethod.GET)
public String editGet(Model model) {
  MyForm form = new MyForm(data);
  model.addAttribute("myForm", form);
  return "editPage";
}

@RequestMapping(value="/edit/save", method = RequestMethod.POST)
public String editPost(@ModelAttribute("myForm") MyForm myForm, Model model) {
 // here myForm.getData() is empty
}

还有我的html:

<form th:action="@{/edit/save}" th:object="${myForm}" method="POST">
  <table>
    <thead>....</thead>
      <tbody th:each="myObj : *{data}" th:remove="tag">
        <tr>
          <td><span th:text="${myObj.name}"></span></td>
          <td><input type="checkbox" th:checked="${myObj.isOK}"/></td>
        </tr>
      </tbody>
  </table>
  <input type="submit">Save</input>
</form>

我忘记了什么?

【问题讨论】:

  • 我认为您的输入字段中需要“th:value”和“name”。我也在使用
    标签,这个标签的一个参数是'modelAttribute'

标签: java forms spring-mvc thymeleaf


【解决方案1】:

您应该使用以下语法:

<tr th:each="myObj, rowStat : *{data}">

然后使用 :

设置输入字段
th:field="*{data[__${rowStat}.index}__].myField}"

这会将您的 MyForm 与输入数据绑定。

更多示例可以在这里找到 Thymeleaf and forms

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2019-10-09
    • 2018-07-23
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    相关资源
    最近更新 更多