gpt4 book ai didi

java - 使用应用程序实现更改用户角色场景

转载 作者:行者123 更新时间:2023-12-01 11:24:02 25 4
gpt4 key购买 nike

我有一个场景,我需要更新用户角色,其中 1 个用户可以拥有 m 个角色。

@Entity
public class User{
private String name;
private String login;
private String password;
@OneToMany
private Role role;
}

所以假设我有一个用户对象列表,其中包含与每个用户关联的角色。现在我必须在用户界面中显示这些数据。例如下面这样,

User Name      Roles
A (ckbox_selected)Admin (ckbox)Viewer (ckbox)Reporter
B (ckbox)Admin (ckbox)Viewer (ckbox_selected)Reporter

用户 A 当前具有管理员权限,现在我们也添加查看者。那么这种场景在 View 层和服务层如何实现呢? dao 将返回用户列表。或者还有其他简单的方法来设计和实现这种场景吗?

如果没有,可以解释如何使用 Spring MVC 上下文或任何其他框架。 View 可以是带有 spring 标签的 jsp 或其他模板 View ,例如 Apache Velocity 等。该模型使用 hibernate 与数据库映射。

最佳答案

应该是这样的

实体

@Entity
public class User{
private String name;
private String login;
private String password;
@OneToMany
private List<Role> roles;
}

带有 spring mvc 标签的 JSP

<form:form comandName="user" method="post">

<form:checkboxes path="roles" items="${roles}" itemLabel="name" itemValue="id"/>

</form:form>

Spring Controller

    @RequestMapping(method = RequestMethod.POST)
public String add(@ModelAttribute("user") User user, BindingResult result) {
validator.validate(user, result);
if (result.hasErrors())
return "/user";

userDao.update(user);
return "redirect:/users";

}

@InitBinder
public void initBinder(ServletRequestDataBinder binder) {
binder.registerCustomEditor(List.class, "roles", new CustomCollectionEditor(List.class) {

protected Object convertElement(Object element) {
if (element != null) {
Integer roleId = Integer.parseInt(element.toString());
Role role = (Role) roleDao.getById(roleId);
return role;

}
return null;
}

});

}

关于java - 使用应用程序实现更改用户角色场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com