spring - 无法在 thymeleaf 页面中打印与用户关联的角色
问题描述
我是spring boot的新手,有人可以帮忙吗!
我有一个显示设置页面的控制器。
@GetMapping("/setting")
public String settings(Model model){
List<User> user = userDao.findAll();
model.addAttribute("user", user);
return "settings";
}
我的查询
@Query(value = "SELECT * FROM users u left join user_role ur on u.id = ur.user_id",nativeQuery=true)
List<User> findAll();
在渲染时,设置页面如下所示。
我需要显示用户角色,如(管理员/版主等)以及角色 ID
用户与角色的映射是多对多的。
@ManyToMany(cascade=CascadeType.MERGE)
@JoinTable(
name="user_role",
joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="ID")},
inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="ID")})
private List<Role> roles;
在设置页面中,我无法获取角色的值。
<tbody>
<tr th:each="u,iterator : ${user}">
<!-- <td th:text="${u.id}"></td> -->
<td th:text="${iterator.index+1}"></td>
<td th:text="${u.name}"></td>
<td th:if="${u.isActive}"><span class="status text-success">•</span> Active</td>
<td th:unless="${u.isActive}"><span class="status text-warning">•</span> InActive</td>
<td>****need to get role here***</td>
</tr>
</tbody>
解决方案
我会做这样的事情:
<td><span th:each="role : ${u.roles}" th:text="${role.name}+' '"></span></td>
根据 Role 类,您有一个 name 字段。
最后的空格只是一个分隔符,以防您有多个角色。
推荐阅读
- javascript - 如何修复无法读取未定义的属性“解雇”?
- google-sheets - 使用数组公式或数据透视表计算一组条码
- flutter - 输入'未来
' 不是 'Widget' 类型的子类型 - nginx - Nginx 缓存 500 Internal Server Error 响应
- python - 使用 sys.argv 我的 scapy 端口扫描程序出现问题
- visual-studio-code - 如何在打开编辑器中搜索当前选定文件的文件夹
- assembly - 关于MIPS指令的两个问题
- android - 限制互联网连接抖动
- flexbox - Odoo QWeb - 创建 pdf 报告时 Flexbox 不工作
- node.js - 无法使用 node 和 express (https) 计算 SSL