1
votes

Comment trouver la taille d'une liste à vue

J'ai besoin de vérifier la taille de la liste à vue. J'ai essayé resource.size, item.size, itemList.size, resource.listChildren.size, item.listChildren.size, mais aucun de ces travaux.

Je prévois d'utiliser Java USE-API, mais je ne sais pas par où commencer.

<sly data-sly-list="resource.listChildren">
    <sly data-sly-list="item.listChildren">
        ${itemList.count} / #I need the total count of item here#
    </sly>
</sly>


1 commentaires

Peut-être dupliquer. Vous devez utiliser une méthode d'écriture pour obtenir la taille si vous le pouvez. stackoverflow.com/questions/36178191/...


5 Réponses :


2
votes

Puisque Resource # listChildren retournera un Iterator<Resource> , vous ne pourrez pas obtenir la taille de la liste d'enfants à partir de là.

HTL n'offre pas non plus de moyen d'obtenir la taille de la liste, mais il permet d'obtenir des propriétés intéressantes de l'élément actuel :

* index: zero-based counter (0..length-1);
* count: one-based counter (1..length);
* first: true for the first element being iterated;
* middle: true if element being iterated is neither the first nor the last;
* last: true for the last element being iterated;
* odd: true if count is odd;
* even: true if count is even.


0 commentaires

-2
votes

Dans votre liste, vous pouvez utiliser des choses comme $ {itemList.count}, mais cela ne fonctionne que dans data-sly-list:

  • $ {item.name} Page $ {itemList.index} sur $ {itemList.count}

  • 1 commentaires

    count est juste un compteur basé sur 1, n'affichera pas le nombre total d'éléments



    0
    votes
    1. Essayez d'utiliser un nom de variable pour la liste.
    2. Si vous avez une liste dans une liste (liste imbriquée), il est toujours recommandé d'utiliser un nom de variable.
    3. <sly data-sly-list.item="resource.listChildren">
          <sly data-sly-list.itemList="item.listChildren">
              ${itemList.length} / #I need the total count of item here#
          </sly>
      </sly>
      

      Essayez d'utiliser la longueur au lieu de la taille et du nombre. Ça marche pour moi.


    0 commentaires

    0
    votes

    <sly data-sly-list.demo=“${demo123.items.listChildren}”> <sly data-sly-test=“${demoList.last}”> ${demoList.count}</sly>

    Condition de test-> demoList.last -> demoList.count


    0 commentaires

    0
    votes

    Fichier Java:

    <sly data-sly-use.myCustomModel="my.custom.location.myCustomModel"> 
     ${myCustomModel.myList.size}
    

    HTL:

    private List<MycustomObject> myList = new ArrayList<>();
    


    0 commentaires