Это происходит потому, что вы используете th:field
неправильно. th:field
предназначен для использования с одним th:object
, но сейчас вы используете 2 разных объекта board
и section
. Когда отображается HTML, оба входа, вероятно, имеют одинаковые значения name="name"
, и когда они передаются, значения объединяются вместе, и вы получаете поведение, которое вы видите.
Вместо этого следует добавить Board и Section к одному объекту, и используйте это как свою форму. Например, если вы создали объект BoardForm
:
public class BoardForm {
private Board board = new Board();
private Section section = new Section();
// Getters and setters...
}
добавил это к вашей модели вместо
model.addAttribute("form", new BoardForm());
, тогда ваш html будет выглядеть так
<form action="#" th:action="@{/add-new-board}" th:object="${form} method="post">
<p>Board name: <input type="text" th:name="board" th:field="*{board.name}" /></p>
<p>Section #1 name: <input type="text" th:name="section" th:field="*{section.name}" /></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>