オブジェクトのリストをバックエンドサービスに戻す方法は?たとえばUIに表示される顧客のリストがあり、そこからユーザが選択する(チェックインチェックボックス)、バックエンド(コントローラクラス)に返す必要があります。しかし、私は選択されたオブジェクトを返すことができません。ThymeleafとSpringブートを使用してUIからバックエンドにオブジェクトのコレクションをバインドする方法
マイコード:
public class CustomerType {
private String customerName;
private String customerMsg;
private Boolean selected;
// setter
// getter
}
public class Customers {
private ArrayList<CustomerType> customerType;
// setter
// getter
}
@GetMapping(value = "/")
public String index(ModelMap modelMap) {
ArrayList<CustomerType> customerType = new ArrayList<>();
customerType.add(new CustomerType("1", "c1", null));
customerType.add(new CustomerType("2", "c2", null));
customerType.add(new CustomerType("3", "c3", null));
Customers customers = new Customers();
customers.setCustomerTypes(customerType);
modelMap.put("customers", customers);
return "index";
}
@PostMapping(value = "/save")
public String save(@ModelAttribute Customers customers, BindingResult errors, Model model) {
...
...
return "hello";
}
========== index.html ==========
...
<form id = "form" class="col-xs-12 col-sm-4" role="form"
th:action="@{/save}" method="post" th:object="${customers}">
<div class="checkbox" th:each="customerType : ${customers.customerType}" >
<input type="checkbox" id="custType" name="custType"
th:text="${customerType.customerName}" th:value="${customerType.customerMsg}" th:checked="${customerType.selected}"></input>
</div>
<div>
<p>
<button type="submit" class="btn btn-default">Submit</button>
</p>
</div>
</form>
私は、UIなどで顧客のリストを表示することができる午前、ユーザーがボタンそれらを提出する上でクリックした後、C1とC3そうを選択した場合3つの、顧客C1、C2、C3は、そのうちのありますsaveメソッドの@ModelAttribute Customersオブジェクトにマップされ、オブジェクトに2つのオブジェクトc1とc3のリストが含まれている必要がありますが、2つのオブジェクトを取得する代わりにNullを受け取ります。
どこが間違っているのかわかりません。
あなたのThymeleafテンプレートを共有できますか? <!DOCTYPE HTML> – Pytry