I'm using Thymeleaf with spring mvc 4 but I have a problem when I want to print a list size
<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>
the problem is here th:text="${u.engines}</td>
. engines
is an ArrayList in my User
entity. I tried th:size
and th:list
but it didn't work.
Can anyone help me please
here is my User
entity:
@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>();
and my Controller method:
@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; }
In Thymeleaf, we use th:each attribute for iteration. Thymeleaf th:each allows you to declare an iteration status variable. The employeeStat is the aggregation of the variable employee with the suffix Stat.
Try using the utility method for org.thymeleaf.expression.Lists
:
<td th:text="${#lists.size(u.engines)}">[Engine Size]</td>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With