I have the following controller to return:
@RequestMapping(value = "/admin/adminUsers", method = RequestMethod.GET) public String adminUsers(ModelMap model, HttpSession session) { Set<TerminalAdmin> users = terminalAdminService.getAllAdmins(); session.setAttribute("users", users); model.addAttribute("adminRoles", terminalAdminService.findAllAdminRoles()); model.addAttribute("terminalAdmin", new TerminalAdmin()); model.addAttribute("generatedPassword", PasswordUpdateStatus.generatePassword()); return "admin/adminUsers"; } terminalAdminService.findAllAdminRoles()
returns a collection with identifiers:

In jsp, I do it like this:
<form:form modelAttribute="terminalAdmin" action="/admin/addNewAdmin"> ... <form:checkboxes items="${adminRoles}" path="adminRoles"/> ... </form:form>
I have a follwing controller to accept this object:
@RequestMapping(value = "/admin/addNewAdmin") public String adminUsers(@ModelAttribute @Valid TerminalAdmin terminalAdmin...){ .... }
In debugging, I see that terminalAdmin comes with adminRoles without identifiers.

How to fix it?
PS
This is a continuation of Dependent duplicate collections when saving an object
java spring-form spring-mvc spring-mvc-initbinders
gstackoverflow
source share