若注册系统中 User 和 Role 采取 ManyToMany 关系如何创建不同的 Role?

2017-03-06 22:22:20 +08:00
 appstore54321
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 实体?

856 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/345432

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX