public class User {
private long id;
private String username;
private String password;
private String passwordConfirm;
private Set<Role> roles;
}
public class Role {
private Long id;
private String name;
private Set<User> users;
}
如果我想在注册页面的 form 里设置一个 radio 让用户选作为 user 还是 admin ,
<form method="post" action="/registration" object="userForm">
<div><label> 用户名 : <input type="text" name="username"/> </label></div>
<div><label> 密 码 : <input type="password" name="password"/> </label></div>
<div><label> 确认密码 : <input type="password" name="passwordConfirm"/> </label></div>
<div><label> Role : <input type="radio" name="roles" value="user" checked>user
<input type="radio" name="roles" value="admin">admin</label></div>
<div><input type="submit" value="注册"/></div>
</form>
controller 是这样的
@RequestMapping(value = "/registration", method = RequestMethod.POST)
public String registration(@Valid User userForm, BindingResult bindingResult, Model model) {
System.out.print(userForm);
userValidator.validate(userForm, bindingResult);
if (bindingResult.hasErrors()) {
return "error";
}
userService.save(userForm);
securityService.autoLogin(userForm.getUsername(), userForm.getPasswordConfirm());
return "redirect:/login";
}
但是这样写会报错,那如何才能将 Role 信息设计进 form 并且能将 userForm 转换为 User 实体?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.