У меня есть форма тимелеафа, которую я хотел бы сделать динамическим, без использования JS. Форма должна заполнить объект класса ProjectNewDto
Тимелеаф: Итерация элементов элементов объекта формы
public class ProjectNewDto {
private List<UsernameAndPps> usernamesAndPps;
...
}
Поэтому проведение список UsernameAndPps
элементов:
public class UsernameAndPps {
private String username;
private double pps;
...
}
Контроллер помещает объект как атрибут модели и инициализировать список usernamesAndPps
с один элемент:
@RequestMapping("/projectNewPageR")
public String projectNewPage(Model model) {
if(!model.containsAttribute("project")) {
ProjectNewDto project = new ProjectNewDto();
project.setUsernamesAndPps(new ArrayList<UsernameAndPps>());
project.getUsernamesAndPps().add(new UsernameAndPps("user",100.0));
model.addAttribute("project",project);
}
return "views/projectNewPage";
}
И тогда я пытаюсь показать его с thymeleaf, как
<form id="new_project_form" action="#" th:action="@{/views/projectNewSubmit}" th:object="${project}" method="post">
<div th:each="usernameAndPps : $(project.usernamesAndPps)">
<input type="text" th:value="${usernameAndPps.username}"></input>
<input type="number" th:value="${usernameAndPps.pps}"></input>
</div>
<button type="submit" class="btn btn-lg btn-primary btn-block">Create</button>
</form>
Я также попытался с $(usernamesAndPps)
вместо $(project.usernamesAndPps)
, но ошибка остается той же:
Could not parse as each: "usernameAndPps : $(project.usernamesAndPps)"
Я снял много других связанных SYTLE Suff, но до сих пор ошибка какого-то , Есть идеи?
Следующим шагом будет добавление еще одной кнопки для добавления элементов в свойство usernamesAndPps
. Давайте будем здесь позитивно.