How to print array size in thimeleaf?

Hello World
I use Thymeleaf with spring mvc 4 , but I have a problem when I want to print the 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} "," engines "is an ArrayList in my" User "entity, which I tried" th: size "and" th: list ", but it didnt work does anyone help me plz

Edited

here is my entity "User.class"

@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 function:

    @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;
}
+6
source share
1 answer

Try using the utility method for org.thymeleaf.expression.Lists:

<td th:text="${#lists.size(u.engines)}">[Engine Size]</td>
+19
source

Source: https://habr.com/ru/post/1016617/


All Articles