V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
appstore54321
V2EX  ›  问与答

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

  •  
  •   appstore54321 · 2017-03-06 22:22:20 +08:00 · 856 次点击
    这是一个创建于 2669 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 实体?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:56 · PVG 07:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.