0
私はJSを使わずにダイナミックにしたいタイメリーフの形をしています。フォームProjectNewDto
Thymeleaf:形のオブジェクトの要素の反復
public class ProjectNewDto {
private List<UsernameAndPps> usernamesAndPps;
...
}
クラスのオブジェクトを記入すべきである。したがってUsernameAndPps
要素のリストを保持する:
public class UsernameAndPps {
private String username;
private double pps;
...
}
のコントローラは、モデルの属性としてオブジェクトを置くとしてusernamesAndPps
のリストをintialize単一の要素:
@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
プロパティに要素を追加するための別のボタンを追加することです。ここで肯定的にしましょう。