Spring 无法在thymeleaf页面中打印与用户关联的角色
我是新来的弹簧靴,有人能帮忙吗 我有一个显示设置页面的控制器Spring 无法在thymeleaf页面中打印与用户关联的角色,spring,spring-boot,thymeleaf,Spring,Spring Boot,Thymeleaf,我是新来的弹簧靴,有人能帮忙吗 我有一个显示设置页面的控制器 @GetMapping("/setting") public String settings(Model model){ List<User> user = userDao.findAll(); model.addAttribute("user", user); return "settings"; } @GetMapping(“/se
@GetMapping("/setting")
public String settings(Model model){
List<User> user = userDao.findAll();
model.addAttribute("user", user);
return "settings";
}
@GetMapping(“/setting”)
公共字符串设置(模型){
List user=userDao.findAll();
model.addAttribute(“用户”,用户);
返回“设置”;
}
我的问题
@Query(value = "SELECT * FROM users u left join user_role ur on u.id = ur.user_id",nativeQuery=true)
List<User> findAll();
@Query(value=“SELECT*FROM users u left join user\u role ur on u.id=ur.user\u id”,nativeQuery=true)
列出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;
@ManyToMany(cascade=CascadeType.MERGE)
@可接合(
name=“用户角色”,
joinColumns={@JoinColumn(name=“USER\u ID”,referencedColumnName=“ID”)},
inverseJoinColumns={@JoinColumn(name=“ROLE\u ID”,referencedColumnName=“ID”)}
私有列表角色;
在设置页面中,我无法获取角色的值
<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>
根据角色类,您有一个名称字段
结尾的空格只是一个分隔符,以防您有多个角色。我会这样做:
<td><span th:each="role : ${u.roles}" th:text="${role.name}+' '"></span></td>
根据角色类,您有一个名称字段
结尾的空格只是一个分隔符,以防您有多个角色。如果用户有多个角色,您希望获得哪个角色?您可以执行类似于
${u.roles.get(0).name}
的操作。一个用户只能有一个角色,这是我尝试过的。它给出了一个例外为什么您有多对多关系,那么?早期的设计就是这样的,但它从未生效。如果用户有多个角色,我会更改它,因为它使类似的事情变得更容易,你想扮演什么角色?您可以执行类似于${u.roles.get(0).name}
的操作。一个用户只能有一个角色,这是我尝试过的。这是一个例外。那么,为什么您有多对多关系呢?早期的设计就是这样,但从未生效。我会更改它,因为它使类似的事情变得更容易