gst*_*low 7 java spring-mvc spring-mvc-initbinders spring-form
我有以下控制器返回视图:
@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()
Run Code Online (Sandbox Code Playgroud)
返回带有id的集合:
在jsp上我渲染它像这样:
<form:form modelAttribute="terminalAdmin" action="/admin/addNewAdmin">
...
<form:checkboxes items="${adminRoles}" path="adminRoles"/>
...
</form:form>
Run Code Online (Sandbox Code Playgroud)
我有以下控制器来接受这个对象:
@RequestMapping(value = "/admin/addNewAdmin")
public String adminUsers(@ModelAttribute @Valid TerminalAdmin terminalAdmin...){
....
}
Run Code Online (Sandbox Code Playgroud)
在调试中,我看到terminalAdminadminRoles没有id.
如何解决这个问题?
PS
我更喜欢使用Converters,因为对我来说它更干净
你应该有类似下面的内容:
public class StringToAdminRoleConverter implements Converter<String, AdminRole> {
@Autowired
TerminalAdminService terminalAdminService;
@Override
public AdminRole convert(String role) {
return terminalAdminService.findRoleByName(role);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |