我需要 spring在boot 和 thymeleaf 中輸入影像描述方面的幫助,因為它沒有顯示用戶角色
因為它向我展示了這些資訊而不是角色
這是我的資料庫
在此處輸入圖片說明
我的控制器
@GetMapping("/listar")
public String listar(Model model) {
List<User> listUsers= userService.findAll();
if(listUsers !=null) {
model.addAttribute("titulo", "Lista de usuarios y roles");
model.addAttribute("listUsers", listUsers);
return "user/listar";
}
return "redirect:/escuela/";
}
我的 HTML
<tr th:each="user: ${listUsers}">
<td th:text="${user.nombre}"></td>
<td th:text="${user.aPaterno}"></td>
<td th:text="${user.aMaterno}"></td>
<td th:text="${user.curp}">]</td>
<td th:text="${user.puesto}"></td>
<td th:text="${user.email}"></td>
<td th:text="${user.roles}"></td>
</tr>
我的物體
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Size(min = 2, max = 20)
@NotBlank
private String nombre;
@Size(min = 2, max = 20)
@NotBlank
private String aPaterno;
@Size(min = 2, max = 20)
@NotBlank
private String aMaterno;
@Size(min = 18, max = 18)
@Column(length = 18, nullable = false, unique = true)
private String curp;
@Size(min = 2, max = 20)
@NotBlank
private String puesto;
@Email
@Column(length = 45, nullable = false, unique = true)
private String email;
@Size(min = 2, max = 20)
@Column(length = 20, nullable = false)
@NotBlank
private String password;
@Valid
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles = new HashSet<Role>();
getter 和 setter.....
我沒有太多的彈簧靴經驗,有人可以幫助我嗎
uj5u.com熱心網友回復:
你得到這個是因為這${user.roles}是一個串列,所以顯示的是這個串列的(因此是Role's)默認toString()方法,
您需要回圈輸入user.roles并列印,例如,角色名稱如下:
<tr th:each="user: ${listUsers}">
<td th:text="${user.nombre}"></td>
<td th:text="${user.aPaterno}"></td>
<td th:text="${user.aMaterno}"></td>
<td th:text="${user.curp}">]</td>
<td th:text="${user.puesto}"></td>
<td th:text="${user.email}"></td>
<td>
<table>
<tr th:each="role: ${user.roles}">
<td th:text="${role.name}"></td>
</tr>
</table>
</td>
</tr>
為了同謀,你也可以覆寫toString()你的Role類中的方法,讓你的 HTML 原樣,即
<td th:text="${user.roles}"></td>
由于您還沒有在下面發布 Role 類,因此是對它可能是什么的“猜測”,并且該toString()方法被覆寫以顯示該name欄位。
角色類
@Entity
public class Role {
private String name;
// rest of properties
// getters and setters
@Override
public String toString() {
return this.name;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/336936.html
