2013-09-05 2 views
2

Я пытаюсь редактировать данные (флажки) в таблице. Но когда я нажимаю на кнопку заполните, форму в контроллере пустПустая форма при отправке с помощью SpringMVC и Thymeleaf

я не нашел пример с thymeleaf так я адаптировано 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> 

Что я забыл?

+0

Я думаю, что вам нужно -м: значение 'и «имя» в вашем входе подачи. Также я использую тег и один параметр этого тега - 'modelAttribute' – paulek

ответ

3

Вы должны использовать следующий синтаксис:

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

, а затем установите поля ввода с помощью:

th:field="*{data[__${rowStat}.index}__].myField}" 

Это будет связать ваш MyForm с входными данными.

Другие примеры можно найти здесь Thymeleaf and forms