【发布时间】:2017-09-14 23:58:52
【问题描述】:
我将 Thymeleaf 与 spring mvc 4 一起使用,但是当我想打印列表大小时遇到问题
<tr th:each="u : ${users}" th:id="${u.username}" class="odd gradeX">
<th></th>
<td th:text="${u.username}"></td>
<td th:text="${u.email}"></td>
<td th:switch="${u.enabled}">
<span th:case="true" class="badge badge-primary">Acitf</span>
<span th:case="false" class="badge badge-danger">Désactivée</span>
<span th:case="*" class="badge badge-dark">Inconnue</span>
</td>
<td th:switch="${u.roles}">
<span th:case="ROLE_SUPER_ADMIN">Super ADmin</span>
<span th:case="ROLE_MANGER">Manager</span>
<span th:case="ROLE_SUPERVISEUR">Superviseur</span>
<span th:case="ROLE_USER">User</span>
<span th:case="*">Inconnue</span>
</td>
<td th:text="${#calendars.format(u.creationDate,'dd/MM/yyyy hh:mm')}"></td>
<td th:text="${#calendars.format(u.lastLogin,'dd/MM/yyyy hh:mm')}"></td>
**
<td th:text="${u.engines}"></td>
<td th:text="${u.subordonnes}"></td>
**
<td></td>
</tr>
问题出在th:text="${u.engines}</td>。 engines 是我的 User 实体中的 ArrayList。我尝试了th:size 和th:list,但没有成功。
谁能帮帮我
已编辑
这是我的User 实体:
@OneToMany(mappedBy = "superieur")
@JsonIgnore
private List<User> subordonnes = new ArrayList<User>();
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "USERS_ENGINES", joinColumns = @JoinColumn(name = "USER_ID"), inverseJoinColumns = @JoinColumn(name = "NUM_EQUIPMENT"))
@JsonIgnore
private List<Engine> engines = new ArrayList<Engine>();
和我的控制器方法:
@RequestMapping(value = {"/listeUsers"})
public ModelAndView userlistePage() {
ModelAndView model = new ModelAndView();
User logedUser = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
List<User> users = new ArrayList<User>();
users = userService.findUserSub(logedUser);
model.addObject("users", users);
model.setViewName("utilisateur/list_users");
return model;
}
【问题讨论】:
-
u.engines.size()不起作用吗? -
不,它也没有用
-
你能添加你的控制器/上下文和模型代码吗?
-
@Charlie 这是我的控制器代码和我声明列表的地方
-
什么意思?你收到错误了吗?如果你附加一个调试器或记录引擎对象,它里面说的是什么?有尺码吗?
标签: java spring-mvc thymeleaf