Spring mvc id id of dependent collection when combining form object from jsp

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:

enter image description here

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.

enter image description here

How to fix it?

PS

This is a continuation of Dependent duplicate collections when saving an object

+7
java spring-form spring-mvc spring-mvc-initbinders
source share
1 answer

I prefer to use Converters because for me it is cleaner

you should have something like the following:

 public class StringToAdminRoleConverter implements Converter<String, AdminRole> { @Autowired TerminalAdminService terminalAdminService; @Override public AdminRole convert(String role) { return terminalAdminService.findRoleByName(role); } } 
+1
source share

All Articles