我有一种百里香形式,我想在不使用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";
}
然后我尝试用百里香的方式表现出来
<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相关的后缀,但仍然是某种错误。有什么想法吗?
下一步是添加另一个按钮以向usernamesAndPps
属性添加元素。让我们保持积极态度。
答案 0 :(得分:0)
好的,我回答了,但我应该删除它。
大括号而不是括号
<div th:each="usernameAndPps : ${project.usernamesAndPps}">