Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 无法在thymeleaf页面中打印与用户关联的角色_Spring_Spring Boot_Thymeleaf - Fatal编程技术网

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">&bull;</span> Active</td>
                    <td th:unless="${u.isActive}"><span class="status text-warning">&bull;</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}
的操作。一个用户只能有一个角色,这是我尝试过的。这是一个例外。那么,为什么您有多对多关系呢?早期的设计就是这样,但从未生效。我会更改它,因为它使类似的事情变得更容易