[英]Spring mvc miss id of dependent collection when combine form object from jsp
I have following controller to return view: 我有以下控制器返回视图:
@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 collection with ids: 返回带有id的集合:
On jsp I render it like this: 在jsp上我渲染它像这样:
<form:form modelAttribute="terminalAdmin" action="/admin/addNewAdmin">
...
<form:checkboxes items="${adminRoles}" path="adminRoles"/>
...
</form:form>
I have the follwing controller to accept this object: 我有以下控制器来接受这个对象:
@RequestMapping(value = "/admin/addNewAdmin")
public String adminUsers(@ModelAttribute @Valid TerminalAdmin terminalAdmin...){
....
}
In debug I see that terminalAdmin
comes with adminRoles without ids. 在调试中我看到
terminalAdmin
带有adminRoles而没有id。
How to fix this? 如何解决这个问题?
PS PS
It is continue of Dependent collection duplicates when I save entity 当我保存实体时,它是Dependent collection重复的继续
i prefer to use Converters , because for me it's 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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.