オブジェクトにリンクされたSpringformがあります(x = modelAttribute)。POST アクションを実行した後、すべてのフィールドの値が保持されます。ただし、 (Multi-Select) リスト (items) はその値を保持しません。
X クラス :
class x
{
String a;
String b;
List<Y> items;
}
JSP:
<form:form method="post" path="x" modelAttribute="role">
<form:input path="a" type="text" />
<form:input path="b" type="text" />
<form:options items="${mylist}" path="items" itemValue="id" itemLabel="name" />
</form:form>
コントローラー:
@RequestMapping(value = "/case/new", method = RequestMethod.GET)
public String newRole(ModelMap model)
{
if(!model.containsAttribute("x")){
model.addAttribute("x", new X());
}
return "/roles/newRole";
}
@RequestMapping(value = "/case/new", method = RequestMethod.POST)
public String doNewCase(@ModelAttribute("x") @Validated X x ,BindingResult bindingResult,ModelMap model)
{
if (bindingResult.hasErrors()) {
if(!model.containsAttribute("x")){
model.addAttribute("x", new X());
}
return "cases/newCase";
}
caseService.addNewCase(x);
return "cases/list";
}
投稿後にアイテムの複数選択の値を保持する方法について何か提案はありますか?